一、dplyr幾個基本函數(shù)
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) #默認根據(jù)Sepal.Length列,從小到大排序
arrange(test, desc(Sepal.Length))#根據(jù)Sepal.Length列奥务,用desc從大到小
4.summarise():匯總,對數(shù)據(jù)進行匯總操作,結(jié)合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)的結(jié)果傳遞至summarise函數(shù)
2.count統(tǒng)計某列的unique值
count(test,Species) #統(tǒng)計Species列的重復(fù)數(shù)據(jù)
三、dplyr處理關(guān)系數(shù)據(jù)
1.內(nèi)連inner_join,取交集
inner_join(test1, test2, by = "x") #按照test1, test2的共有列x取交集
2.左連left_join
left_join(test1, test2, by = 'x') #test1在左邊婉陷,按照test1的內(nèi)容去匹配test2帚称,test2中未匹配到的內(nèi)容不顯示
left_join(test2, test1, by = 'x') #test2在左邊,按照test2的內(nèi)容去匹配test1秽澳,test1中未匹配到的內(nèi)容不顯示
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')