R系统学习
1.环境安装
- 下载R语言的软件:https://cran.r-project.org/bin/windows/base/
- 下载Rstudio这个R编辑器:https://www.rstudio.com/products/rstudio/download/
1.1 基本入门
-
学习help函数(
-
R的特性就是有着大量的包,所以你必须学会安装包:
安装包 install.packages(" xxxxxx ")
加载包 library( xxxxx )
查看包的帮助文档help(“xxxxx”) 或?xxxxx
获取当前工作区间getwd()
更改工作区间 setwd( “xxxxxx”)
清除当前对象rm()
安装包你一定会遇到错误,请参考:
R包终极解决方案!(http://www.biotrainee.com/thread-144-1-1.html)
R的包(package)(http://www.bio-info-trainee.com/579.html) -
书籍推荐:《R in Action》、《The Art of_R Programming》
2.R中的变量
-
向量:特简单,不赘述。
-
因子:现在不太懂
-
数据框:就像我们的表格,第一行就是每一列的名字,我们称之为字段,或者变量名。那么对应每列下面的数据就叫做记录或者观测。用data.frame( 字段1,字段2,…. )创建 )
-
列表:与数据框类似,区别就是每一列向量类型和长度可以不一致。用list( 字段1, 字段2,…… )创建
-
数组:其形式就像我们玩的模方,每一个面都是一个矩阵数据,用array(数据,各维度的最大值,各维度的名称)
3.基础操作函数
- 变量怎么来,对它们处理什么?
我们处理生物信息学数据一般很少会手动创建这些对象,都是从文本里面读取,比如kegg数据库文件,差异分析结果,RNA-seq的表达量矩阵,但是读入之后,我们的重点就是知道它们变成了什么,该如何去一步步的转换它们。 - 数据的特性函数也必须要知道,无非就是一些英文单词而已,你经常的玩一下,就慢慢的熟练了。
- (str,class,names,row.names,col.names,length,unique,view,min,max,summay,table)
4.可视化变量
R最大的好处就是可以画一大堆图,对任何数据都可以可视化,简简单单的就可以画一大堆的图。
plot,boxplot,barplot,pie,hist,pair,它们每个绘图函数都有自己要求的输入数据,特定的可视化结果。建议先help它们。下面举些例子:
- dev.new()新建画板
- plot()绘制点线图,条形图,散点图.
- barplot( ) 绘制条形图
- dotchart( ) 绘制点图
- pie( )绘制饼图.
- pair( )绘制散点图阵
- boxplot( )绘制箱线图
- hist( )绘制直方图
- scatterplot3D( )绘制3D散点图.
- 低级绘图函数:
- par() 可以添加很多参数来修改图形
- title( ) 添加标题
- axis( ) 调整刻度
- rug( ) 添加轴密度
- grid( ) 添加网格线
- abline( ) 添加直线
- lines( ) 添加曲线
- text( ) 添加标签
- legend() 添加图例
它们还有一系列的绘图参数(坐标轴、图例,颜色,性状,大小,空白,布局)非常繁琐,想掌握,花费的时间会非常多,但是很多人直接跳到ggplot的绘图世界了,不想搞那么多底层绘图代码。但是我看过一个底层R绘图集大成者,就Combining gene mutation with gene expression data improves outcome prediction in myelodysplastic syndromes文章的作者的github里面有。但是对大部分人来说,生信的绘图,都是有套路的,其实都被别人包装成函数了,做好数据,一个函数就出了所有复杂的图。比如热图,cluster等等。
ggplot建议google:
5.数据对象的高级操作
前面我们对向量,数据框,数组,列表都了解了,也知道如何查看数据的特性,但是要进行高级转换,就需要一些时间来学习apply系列函数,aggregate,split等函数的用法。这是一个分水岭,用好了你就算是R入门了。也可以用一些包,比如reshape2,dplyr。
6.R的bioconductor世界
这个是生物信息学特有的,也是为什么我要求搞生物信息学数据处理的人必须学习R,就是为了应用大量的bioconductor包。在这里面所有的对象都不在是基础的向量,数据框,数组,列表了,而是S3,S4对象,这个高级知识点我就不推荐了,你学会了前面的东西,就有了自己的学习经验了,后面的分分钟就搞定了。(其实你永远也搞不定的)
补充:R语言学习的网络资源
- R语言官方站 http://www.r-project.org/
- R-blogger http://www.r-bloggers.com/
- R语言资源汇总 https://github.com/qinwf/awesome-R
- R语言搜索引擎 http://www.rseek.org/
- R函数在线帮助 http://www.rdocumentation.org/
- 关于R的问答网站 http://stackoverflow.com/questions/tagged/r
- 一个入门级的R在线教程 http://tryr.codeschool.com/
- 交互式的R在线教程 https://www.datacamp.com
- 统计之都 http://cos.name/
- 我的博客 http://xccds1977.blogspot.com
- 美国计算机世界杂志提供的R语言初学者入门资料http://www.computerworld.com/s/article/9239625/Beginner_s_guide_to_R_Introduction
- 各种cheatsheet
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.rstudio.com/resources/cheatsheets/