今天以dplyr为例学习R包,可怜我的小破电脑安装不了包,只能先将文字版本整理下来
dplyr包是用于数据清理的高效R包,是tidyverse的核心包之一
安装和加载R包
- 设置镜像
https://mp.weixin.qq.com/s/XvKb5FjAGM6gYsxTw3tcWw
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
--生信星球
- 安装
install.packages(“包”) #CRAN
BiocManager::install(“包”) #Biocductor - 加载
library(包)
require(包)
dplyr基础函数
- mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width) - select(),按列筛选
按列号,select(test,1)
按列名,select(test, Petal.Length, Petal.Width) - filter()筛选行
filter(test, Species == "setosa")
filter(test, Species == "setosa"&Sepal.Length > 5 )
filter(test, Species %in% c("setosa","versicolor")) - arrange(),按某1列或某几列对整个表格进行排序
arrange(test, Sepal.Length)#默认从小到大排序
arrange(test, desc(Sepal.Length))#用desc从大到小 - summarise():汇总
summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值和标准差
group_by(test, Species)
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
dplyr实用技能
- 管道操作 %>% (cmd/ctr + shift + M)
把符号前的对象作为第一个参数传递给符号后的函数 - count统计某列的unique值
dplyr处理关系数据
join,对两个数据集的观测根据共同变量进行横向合并的操作
- 內连inner_join,取交集
- 左连left_join
- 全连full_join
- 半连接:返回能够与y表匹配的x表所有记录semi_join
- 反连接:返回无法与y表匹配的x表的所记录anti_join
- 简单合并