生信星球Day06--不,他没有正在输入

学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),] #测试数据下文会用到
test data

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包应该先看一眼帮助文档,了解大概有哪些参数,用提供的测试例子跑一遍,注意体会差别!

思维导图
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容