R _dplyr包常用函数_持续更新...

1、分组统计(包括分组求和、均值、中位数等)

irisSum <- iris %>%
  dplyr::group_by(Species) %>%
  dplyr::summarise(meanSize = mean(Sepal.Length)) 

#统计函数:mean(),meadian(),quantile(),min(),max(),sd(),var().

2、排序

#数据框排序。默认按顺序,关键字desc逆序
irisOrder <- iris %>%
  dplyr::arrange(Sepal.Length)
#dplyr::arrange(desc(Sepal.Length))

 3、选取

#选取
##条件过滤
irisFilter <- iris %>%
  dplyr::filter(Sepal.Length >= 0.1)
irisFilter <- iris %>%
  dplyr::filter(between(Sepal.Length,4,5))


##选取列,结果为数据框
irisSelect <- iris %>%
  dplyr::select(contains('len'))
irisSelect <- iris %>%
  dplyr::select(-contains('len'))
irisSelect <- iris %>%
  dplyr::select(-Sepal.Length,-Sepal.Width)

##选取列,结果为向量
irisPull <- iris %>%
  dplyr::pull(Sepal.Length)

##选取组内top,top_n按选取字段倒序排列
irisOrder <- iris %>%
  dplyr::group_by(Species) %>%
  dplyr::top_n(2,Sepal.Length)

 3、过滤逻辑判断

R _dplyr包常用函数_持续更新..._第1张图片

4、列操作

##新增列(保留原数据框列),也可以用base包直接$新列
irisVec <- iris %>%
  dplyr::mutate(newCol = Sepal.Length * Sepal.Width)

##新增列(不保留原数据框列)
irisVec <- iris %>%
  dplyr::transmute(newCol = Sepal.Length * Sepal.Width)

##对所有列进行fun,单位换算的时候常用
irisVec <- iris %>%
  dplyr::mutate_if(is.numeric,funs(.*100))

##对选中列进行fun
irisVec <- iris %>%
  dplyr::mutate_at(vars(-Species),funs(./100))

##列名变更
irisVec <- iris %>%
  dplyr::rename(newColName1 = Species,newColName2 = Sepal.Length)

5、MISC

##NA替换
test1 <- c(1, 2, NA, NA, 5) %>%
  dplyr::coalesce(0)

 

6、行合并

#行合并
a <- data.frame(A= c('a','b','c'),B=c('t','u','v'),C=c('1','2','3'))
b <- data.frame(A= c('c','d'),B=c('v','w'),C=c('3','4'))
##合并
c <- dplyr::bind_rows(a,b)
##取相同行
c <- dplyr::intersect(a,b)
##取不同行
c <- dplyr::setdiff(a,b)
##合并且去重复值
c <- dplyr::union(a,b)

 

 

 

 

你可能感兴趣的:(R)