加载镜像及
- 安装加载三部曲
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #加CRAN载镜像,对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #加Bioconductor载镜像,对应中科大源
install.packages("dplyr") #安装dplyr
library(dplyr) #加载dplyr
- 示例数据
test <- iris[c(1:2,51:52,101:102),]
示例数据为内置数据集iris的简化版,ji第1,2,51,52,101,102行的数据赋值test
dplyr五个基础函数
-
mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width) # mutate(文件, 列名 = 数据)
-
select(),按列号/列名筛选
select(test,列号/列名)
-
filter()筛选行
-
arrange(),按某1列或某几列对整个表格进行排序
arrange(test, Sepal.Length)#默认从小到大排序 arrange(test, desc(Sepal.Length))#desc:降序排列
-
summarise():汇总
summarise(test,mean(Sepal.Length),sd(Sepal.Width))
#分别计算test变量中Sepal.Length和Sepal.Width列的平均值和方差
group_by(test,species)
#对于test变量中的species列进行分组,相同的放在一起
summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Width))
#分别计算test变量不同物种中Sepal.Length和Sepal.Width列的平均值和方差
dplyr两个实用技能
- 管道操作 %>% (cmd/ctr + shift + M)
加载任意一个tidyverse包即可用管道符号
作用?把数据加载到%>%后面的的条件中?
- count统计某列的unique值
count(数据,列名) #统计Species的种类以及数量
dplyr处理关系数据
即将2个表进行连接,注意:不要引入factor
options(stringsAsFactors = F) # options 设置环境;stringsAsFactors = F # 不要引入factor
test1 <- data.frame(x = c('b','e','f','x'),
z = c("A","B","C",'D'),
stringsAsFactors = F)
1.內连inner_join,取交集
inner_join(test1, test2, by = "x")
2.左连left_join
left_join(test1, test2, 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.反连接:返回无法与y表匹配的x表的所记录anti_join
anti_join(x = test2, y = test1, by = 'x')
6.简单合并
bind_rows(test1, test2) #行合并,需要两个表格列数相同 bind_cols(test1, test3) #列合并,需要有相同的行数
相当于base包里的cbind()函数和rbind()函数
网友评论