一、dplyr几个基本函数
1.select(),按列筛选
select(test,1) #选取test的第一列
select(test,c(1,5)) #选取test的第1、5列
select(test, Petal.Length, Petal.Width) #选取test的列名为“Petal.Length”和“ Petal.Width”的2列
#或者先定义一个列名的变量
vars <- c("Petal.Length", "Petal.Width")
select(test, one_of(vars))
2.filter()筛选行
filter(test, Species == "setosa") #选取test的行名为“setosa”的行
filter(test, Species == "setosa"&Sepal.Length > 5 ) #选取test中,Species为“setosa”且Sepal.Length > 5的行
filter(test, Species %in% c("setosa","versicolor"))#选取test中,Species为“setosa”或"versicolor"的行
3.arrange(),按某1列或某几列对整个表格进行排序
arrange(test, Sepal.Length) #默认根据Sepal.Length列,从小到大排序
arrange(test, desc(Sepal.Length))#根据Sepal.Length列,用desc从大到小
4.summarise():汇总,对数据进行汇总操作,结合group_by使用实用性强
summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值和标准差
# 先按照Species分组,计算每组Sepal.Length的平均值和标准差
group_by(test, Species)
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
5.mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width) #新增“new”列
二、dplyr两个实用技能
1.管道操作 %>% (cmd/ctr + shift + M)
test %>%
group_by(Species) %>%
summarise(mean(Sepal.Length), sd(Sepal.Length)) #将group_by(Species)的结果传递至summarise函数
2.count统计某列的unique值
count(test,Species) #统计Species列的重复数据
三、dplyr处理关系数据
1.內连inner_join,取交集
inner_join(test1, test2, by = "x") #按照test1, test2的共有列x取交集
2.左连left_join
left_join(test1, test2, by = 'x') #test1在左边,按照test1的内容去匹配test2,test2中未匹配到的内容不显示
left_join(test2, test1, by = 'x') #test2在左边,按照test2的内容去匹配test1,test1中未匹配到的内容不显示
3.全连full_join
full_join( test1, test2, by = 'x')
4.半连接:返回能够与y表匹配的x表所有记录semi_join
semi_join(x = test1, y = test2, by = 'x')
5.反连接:返回无法与y表匹配的x表的所记录anti_join
anti_join(x = test2, y = test1, by = 'x')