学R语言之前,经常听“包治百病”,R package作为函数的集合,极大地便捷了我们的日常使用,尤其对于生信分析来说,日常需要的数据处理及可视化都有对应的包,今天跟随生信星球花花老师来掌握一下R包学习及使用规律。
1.安装和加载R包
(1)镜像设置
R及Rstudio默认是从官网镜像下载R package的,但因为在国内连接官网网速经常感人,所以设置国内镜像还是很有必要的。
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")):设置清华镜像用于下载CRAN网站R包
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/"):设置中科大镜像以下载biocductor网站R包
具体镜像设置推荐生信星球 豆豆和花花老师的文章
详细具体的操作
你还在每次配置Rstudio的下载镜像吗?
(2)安装
install.packages(“package name”) #CRAN网站R包下载
BiocManager::install(“package name”) #biocductor网站R包下载
(3)加载
包使用前需要加载,不然有些函数无法直接调用
library(package.name)
require(package.name)
test <- iris[c(1:2,51:52,101:102),] #测试数据下文会用到

2.dplyr五个基础函数
学完R包安装了,接下来需要进一步学习R包使用了
?函数名/R包名:可以调用帮助文档,学包前看看示例数据及描述可能有助于后续理解;(help()也可以完成)
a.mutate():新增列
mutate(test, new = Sepal.Length * Sepal.Width)
test数据集新增"new"列,值为Sepal.Length * Sepal.Width

待">" 返回后才表明运行完
b.select(),按列筛选
(1)按列号筛选
select(test,1)
select(test,Sepal.Length)
select(test,c(1,5))
select(test,Sepal.Length)

(2)按列名筛选
select(test, Petal.Length, Petal.Width) #选取test中Petal.Length和Petal.Width两行;
vars <- c("Petal.Length", "Petal.Width") #"Petal.Length", "Petal.Width"字符串赋给vars;
select(test, one_of(vars)) #test中筛选vars中的一个;
c.filter()筛选行
filter(test, Species == "setosa")
filter(test, Species == "setosa"&Sepal.Length > 5 )
filter(test, Species %in% c("setosa","versicolor"))
"test,"后面参数为筛选条件,
%in%:判断前面一个向量内的元素是否在后面一个向量中,也叫管道符;
d.arrange(),按某1列或某几列对整个表格进行排序
arrange(test, Sepal.Length)#默认从小到大排序(升序)
arrange(test, desc(Sepal.Length))#用desc从大到小
e.summarise():汇总
汇总操作,结合group_by(分组)使用实用性强;
即先分组再汇总:
summarise(test, mean(Sepal.Length), sd(Sepal.Length))#可以求统计常量
group_by(test, Species)
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
分组排序后可看出数据将每一组的统计学数值返回。

秘籍之管道操作 %>% (cmd/ctr + shift + M)
test %>% group_by(Species) %>% summarise(mean(Sepal.Length), sd(Sepal.Length))
完成同上文一致的操作
秘籍之count统计
count(test,Species):可以对表格某一列进行数量统计;
3.dplyr处理关系数据
将2个表进行连接,注意:不要引入factor;
options(stringsAsFactors = F):引入factor可能经常会报错;
a.內连inner_join,取交集
inner_join(test1, test2, by = "x") :取交集(真子集);
b.左连left_join

c.全连full_join
full_join( test1, test2, by = 'x'):以左侧test1为主,test2与其对照;
反之,test1对照test2全连。
d.半连接:返回能够与y表匹配的x表所有记录semi_join
semi_join(x = test1, y = test2, by = 'x')
e.反连接:返回无法与y表匹配的x表的所记录anti_join
anti_join(x = test2, y = test1, by = 'x')与半连接相反
f.简单合并
cbind()函数和rbind()函数即可解决;
bind_rows() 和 bind_col():
bind_rows()函数需要两个表格列数相同,而bind_cols()函数则需要两个数据框有相同的行数,毕竟不是相互匹配,只是单纯的并列在一起。
今天R包相关的知识点就是这些了,一一打了一遍感觉学习R包应该先看一眼帮助文档,了解大概有哪些参数,用提供的测试例子跑一遍,注意体会差别!
