今日任务:以dplyr统计包为例,学习R包的安装与使用
1 R包的安装
镜像的设置
1.R studio默认选项
Tools→options→packages→CRAN mirror→清华源
仅能设置CRAN镜像源
2.设置RProfile文件保存默认设置
file.edit('~/.Rprofile') 编辑默认地址下的Rprofile文件
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) CRAN源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") Bioconductor源
重启后检验
options()$repos
options()$BioC_mirror
dplyr包的安装与调取
install.packages("dplyr") 安装CRAN网站内程序包
BiocManager::install("limma") 安装Bioconductor内程序包
library(dplyr) 调用程序包
2 dplyr包的应用
以R语言自带数据集iris为例
新建一数据集test(含6个元素)
test <-iris[c(1:2,51:52,101:102)]
5个基本功能
mutate 新增列
mutate(test,new=Sepal.Length * Sepal.Width)
在test数据集中新增一列向量,列名为new,其数值等于数据集内两项的乘积
select 按列筛选
select(test,1) 筛选第一列
select(test, c(1,5)) 第一列与第五列
select(test,Sepal. Length) 筛选特定列名
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")) 位于子集中的元素用%in%表示
arrange 按某一列或几列排列数据
arrange(test, desc(Sepal.Length)) descend降序排列,从大到小
summarize 汇总
用于输出各种统计数据
group_by(test, Species) 先按品种进行分组
summarise(group_by(test, Species), mean(Sepal.Length), sd(Sepal.Length))
#小技巧
使用管道符(%>%) 有连接的命令相继进行
test %>%
group_by(Species) %>%
summarise(mean(Sepal.Length), sd(Sepal.Length))
使用count统计特殊值的数量
count(test,Species) 本数据框内有几个品种?
dplyr处理关系数据
可应用于基因ID转换
输入数据框
test1 <- data.frame(x = c('b','e','f','x'),
z = c("A","B","C",'D'),
stringsAsFactors = F)
stringAsFactors默认为True。而此时我们希望向量内字母作为字符/数值存在,不作为分类依据,故 stringsAsFactors = F
test2 <- data.frame(x = c('a','b','c','d','e','f'),
y = c(1,2,3,4,5,6),
stringsAsFactors = F)
分别得到一 2×4和2×6矩阵
inner_join取交集
inner_join(test1, test2, by = "x")
约等于 cbind(,by=) + na.omit()
左连left_join
有次序、方向的cbind
left_join(test1, test2, by="x")
全连full_join(取并集)
full_join( test1, test2, by = "’x")
半连接
返回y表中所有与x表匹配的成分
semi_join(x = test1, y = test2, by = "x")
反连接
返回y表中所有无法与x表匹配的成分
anti_join(x = test2, y = test1, by = "x")