写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文!
本博客全网唯一合法URL:https://www.cnblogs.com/acm-icpcer/p/11203182.html
这几天参加了学院组织的生物信息培训活动,有一个部分讲R语言入门,个人觉得受益良多,特将一些听课心得记录在此。
Introduction
R语言本质上和python、matlab一样是解释型语言,与编译型语言不同,解释型程序设计语言交付编译器执行时是一条条执行的,也就是说边执行边检查语法错误,当某一句代码出错时,编译器直接跳过此句,继续向后执行;编译型语言则必须在提交执行之前通过编译器检查出源代码工程文件中的所有语法错误。解释型语言也可以在集成开发环境IDE中以命令行的形式一句一句输入执行。R语言是以统计为目的的语言,主要用于数据处理和统计绘图。
本文主要内容:1、获得R;2、RStudio入门;3、R语法入门;4、R绘图入门。
1、获得R
(1)与python语言一致,获得R要先获得R的语言包:https://cran.r-project.org/,在此基础上再安装R语言的IDE
(2)安装集成开发环境RStuudio:https://www.rstudio.com/
(3)安装完后,启动RStudio见到此界面说明R语言包和RStudio安装成功。
2、RStudio入门
(1)RStudio的常规界面主要分为四大部分,每一部分都极其有用。一般使用RStudio的时候的工作环境是这样的:
(2)左上角的部分是代码编辑框。
(3)左下角是控制台(console)和终端(terminal),一般使用左下角的控制台(console)输入单条或多条R语言命令对RStudio进行开发环境设置、编程全局变量调整、当前工作目录调整,实际上类似Linux的shell。
(4)右上角那部分中的enviroment部分用来查看执行过程中产生的中间结果和中间变量,这些中间结果可以随时导出、导入;而History部分可以随时查看你与左下角console进行交互的命令记录。
(5)右下角的部分可以管理R语言的组织文件(files)、画图(plots)、R语言外部代码包的导入与删除(packages)、查看R函数的具体信息和使用方法以及R函数的源代码(help)。
(6)刚启动成功的RStudio的原生态的R语言,也即此时的IDE内不包含任何外部导入的函数包,这样的原生R语言不能满足常规的数据处理要求,要导入一些常用的函数包(packages)以发挥R语言的最大威力:
install.packages("gridExtra") install.packages("pheatmap") install.packages("reshape2") install.packages("ggplot2") install.packages("ggbeeswarm") install.packages("ggpubr") library(gridExtra) library(pheatmap) library(reshape2) library(ggplot2) library(ggbeeswarm) library(ggpubr)
导入的包的方法很简单,直接将上述命令复制到左下角console的命令行内,敲击回车键执行即可:
每条install命令执行后会报英文提示,例如安装ggpubr包成功会出现成功解压和MD5验证成功的提示:
安装好的包可以在右下角的packages选项卡中输入名称查找,若查找到相对于名字的包并且前面的install打勾则安装成功,packages内部可以轻松添加、升级、删除R函数包:
(7)刚起步时运行他人的R源代码会提示你缺少必要的函数,可以使用搜索引擎查找该函数所在的包的名字,并仿照使用包安装命令安装相应的函数包解决此类问题。
3、R语法入门
(1)完整的R语言语法可以查看R语言官网的用户入门手册:
https://cran.r-project.org/doc/manuals/r-release/R-intro.html
https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf
当然也可以参照相关的中文博客。
(2)R语言的数据组织的核心是向量(vector)、矩阵(matrix)、表格(list)、数据框架(data fram,常用于ggplot2包画图的原始数据表示)。
4、R画图入门
(1)R最常用的画图手段是使用R函数包ggplot2内的函数进行画图,故而画图前应该要先在RStudio内安装好ggplot2函数包。最简单的启动画图函数的方法是在RStudio左下角部分的console的命令行中输入画图代码回车直接执行:
输入画图命令之前需要先在console执行激活画图包命令:
library(gridExtra)
library(ggbeeswarm)
library(reshape2)
library(ggplot2)
background<-(theme_bw()+theme(axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank(),legend.position = "none")) fpkm<-read.table("data_for_JCB.txt",header=T,sep = " ",row.names = "gene") fpkm2<-as.data.frame(t(fpkm)) density_plot<-ggplot(fpkm2)+geom_density(aes(Zm00001d013156),fill="grey",alpha=0.7)+labs(title = "geom_density")+background hist_plot<-ggplot(fpkm2)+geom_histogram(aes(Zm00001d006775),bins = 30)+labs(title = "geom_histogram")+background fpkm2$tissue<-row.names(fpkm2) point_plot<-ggplot(fpkm2)+geom_point(aes(tissue,Zm00001d006775))+labs(title = "geom_point")+background bar_plot<-ggplot(fpkm2)+geom_bar(aes(tissue,Zm00001d006775),stat="identity")+labs(title = "geom_bar")+background box_plot<-ggplot(fpkm2)+geom_boxplot(aes("Zm00001d013156",Zm00001d013156),fill="grey50")+geom_boxplot(aes("Zm00001d006775",Zm00001d006775),fill="grey50")+labs(title = "geom_boxplot")+background violin_plot<-ggplot(fpkm2)+geom_violin(aes("Zm00001d013156",Zm00001d013156),fill="grey50")+geom_violin(aes("Zm00001d006775",Zm00001d006775),fill="grey50")+labs(title = "geom_violin")+background bee_plot<-ggplot(fpkm2)+geom_beeswarm(aes("Zm00001d013156",Zm00001d013156))+geom_beeswarm(aes("Zm00001d006775",Zm00001d006775))+labs(title = "geom_beeswarm")+background data<-melt(fpkm2[c(1:10),c(1:10,401)],id.vars = "tissue") names(data)<-c("tissue","gene","FPKM") tile_plot<-ggplot(data)+geom_tile(aes(gene,tissue,fill=log2(FPKM+1)))+labs(title = "geom_tile")+scale_fill_gradient2(high="red",low="blue",mid="white",midpoint = 6)+background grid.arrange(density_plot,hist_plot,point_plot,bar_plot,box_plot,violin_plot,bee_plot,tile_plot,nrow=2)
执行后RStudio右下角部分的plots部分会出现绘图结果:
tz,first initiated@croplab,HZAU
2019/7/17