今天的主題是學(xué)習(xí)R包,以dplyr為例學(xué)習(xí)操作
library(dplyr)
一、dplyr五個基礎(chǔ)函數(shù)
使用內(nèi)置數(shù)據(jù)集iris的簡化版進行學(xué)習(xí)test <- iris[c(1:2,51:52,101:102),]
1、mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width)#mutate(),新增列
2、select(),按列篩選
select(test,1)#按列號篩選,按第1列篩選
select(test,c(1,5))#按列號篩選,按第1、5列篩選
select(test,Sepal.Length)#按列名篩選
select(test, Petal.Length, Petal.Width)#按列名篩選
vars <- c("Petal.Length", "Petal.Width")#按列名篩選
select(test, one_of(vars))#按列名篩選
3、filter(),篩選行
filter(test, Species == "setosa")#篩選行
filter(test, Species == "setosa"&Sepal.Length > 5 )#篩選行
filter(test, Species %in% c("setosa","versicolor"))#篩選行
4、arrange(),按某1列或某幾列對整個表格進行排序
arrange(test, Sepal.Length)#默認從小到大排序
arrange(test, desc(Sepal.Length))#用desc從大到小
5、summarise():匯總
# 計算Sepal.Length的平均值和標(biāo)準(zhǔn)差
summarise(test, mean(Sepal.Length), sd(Sepal.Length))
# 先按照Species分組,計算每組Sepal.Length的平均值和標(biāo)準(zhǔn)差
group_by(test, Species)
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
二、dplyr兩個實用技能
1、管道操作 %>% (cmd/ctr + shift + M)
test %>%
group_by(Species) %>%
summarise(mean(Sepal.Length), sd(Sepal.Length))
2、count統(tǒng)計某列的unique值
count(test,Species)
三、dplyr處理關(guān)系數(shù)據(jù)
1、內(nèi)連inner_join,取交集
options(stringsAsFactors = F)#不要引入factor
test1 <- data.frame(x = c('b','e','f','x'),
z = c("A","B","C",'D'),
stringsAsFactors = F)
test1
test2 <- data.frame(x = c('a','b','c','d','e','f'),
y = c(1,2,3,4,5,6),
stringsAsFactors = F)
test2
inner_join(test1, test2, by = "x")
2、左連left_join
left_join(test1, test2, by = 'x')
left_join(test2, test1, by = 'x')
3、全連full_join
full_join(test1, test2, by = 'x')
4、半連接:返回能夠與y表匹配的x表所有記錄semi_join
semi_join(x = test1, y = test2, by = 'x')
5、反連接:返回?zé)o法與y表匹配的x表的所記錄anti_join
anti_join(x = test2, y = test1, by = 'x')
6、簡單合并
bind_rows(test1, test2)
bind_cols(test1, test3)