前言
因为工作需求,接下来一段时段需要大量的R绘图操作,而我并没有学习过R,因此特地补充一下基础。其实R和python非常像。python中有交互式和脚本式两种运行方式,R也同样有这两种运行方式,而且安装工具包的方式也相近,因此有python基础可以有利于我们快速学习R。当然,两者也存在很多的区别,比如数据类型和数据结构不太一样,当然还有其他区别,不一一列举。R到底能做到些什么,而又该怎么做呢?这是我们接下来要探索的问题。
1.R简介
R是一门用于做统计分析和绘图的解释性语言,产生于上世纪八十年代的贝尔实验室。R应用领域也很多,在生信领域主要用于绘制科学图片,当然也可以进行统计计算,归根到底,工具发挥什么作用还是取决于使用工具的人对吧。
R是一个开源自由的软件,同时对应的工具库也很多,所以目前来看也依然有非常多的用户,这也是一个良好社区的基础,而良好社区几乎是一门语言能否健康发展的全部因素。
R的工具包管理软件是CRAN,其中这个管理工具上的软件包都是经过了严格审核的,因此我们可以通过Rstutio或者命令行中使用help()命令查看详尽的帮助文档,通过这些文档我们可以很好地了解和学习工具包的使用。就这一点而言,R比python更加出色。
2.R基础使用
- install.packages(‘pheatmap’) #安装工具库
- library(pheatmap) #导入工具库
- help(‘pheatmap’) #读取工具库帮助文档
- example(‘pheatmap’) #读取对应工具包的例子
- variable <- “value” #创建变量
- 控制数据流
- 输出数据结果
3.R的数据类型和数据结构
- 数据类型
- 字符型 ‘a’ ‘hello world’
- 数值型 1 2 1:4
- 逻辑型(布尔型)FALSE TRUE
- 数据结构
- vector 向量,一维数组,K = 1
- factor 因子
- array 数组,K维度数组,K > 2
- matrix 矩阵,K = 2
- list 可以包含任何类型的对象,像是一个集合,对象不等长
- dataframe 数据框,类似于一个二维数据表格,每一列等长,和列表有点像
4.访问数据
- 内置数据集
- cars 一个2列数据的list
- head(cars)
- str(cars)
- class(cars)
- letters 含有小写字母的vector
- LETTERS 含有大写字母的vector
- month.abb 月份缩写的vector
- month.name 月份全称的vector
- ToothGrowth 内置data.frame的数据表
- 读取数据文件
data <- read.table(file, header=T, sep =”\t”, row.names = 1)
data <- read.csv(file, header = TRUE, sep = “,”, quote = “"“, dec = “.”, fill = TRUE, comment.char = “”, …)
data <- read.csv2(file, header = TRUE, sep = “;”, quote = “"“, dec = “,”, fill = TRUE, comment.char = “”, …)
data <- read.delim(file, header = TRUE, sep = “\t”, quote = “"“, dec = “.”, fill = TRUE, comment.char = “”, …)
data <- read.delim2(file, header = TRUE, sep = “\t”, quote = “"“, dec = “,”, fill = TRUE, comment.char = “”, …)
5.常用符号 函数
##
6.绘图基础
- R内置绘图方法plot()
- 工具包绘图:ggplot2/pheatmap/ggpubr等
- eg. 使用工具包pheatmap(data_new, scale = ‘row’, cluster_cols = F, show_rownames = F)可以绘制热图,结果如下:
7.绘图进阶
ggplot2绘图层次
- ggplot() 初始化
- gemo_bar() 图形类型
- cale_x_…() 调整对象
- theme_…() 内置主题 + theme(
) 添加自定义主题设定
备注:这四个层次是由高到低的设置,就像是在画图的时候由大到小的一个聚焦过程,在绘图的时候可以由此来确定自己绘图的层次和功能。这和python中的matplotlib的4个绘图层次非常相似,因此可以互相促进理解。
Tips:
- getwd() 获取当前工作目录,可以在命令行也可以在脚本中书写
- setwd(choose.dir()) 设定工作目录,可以更改自己的工作目录
- 进入R的交互式运行shell的方式,可以在命令行里输入R.exe即可进入(Linux中输入R)
- 脚本式运行的方式 命令行下运行 Rscript helloworld.R
- 运行命令快捷键 ctrl+Enter
- dev.off() 清理工作空间缓存
- 数据按列填充,也就是一列一列填写数据
- R中变量命名可以包含 . 这个符号
- 帮助文档结构(好的帮助文档是一个艺术品,而文档的编写就是创造艺术品,需要练习)
- description 描述功能
- usage 使用方法
- arguments 参数解释
- details 细节补充
- author 作者信息
- examples 使用示例
结语
R还是使用挺方便的,特别是在画图的过程中,感觉操作更加好理解,而且一个工具包就非常强大,可以不用再怎么装依赖库,这是非常棒的一点。现在算是R的基本入门只是,之后想要有进一步的深入就需要自己去挖掘了。