R 语言基础学习笔记:安装、语法、数据读写与基础绘图
核心结论:R 语言因开源免费、向量化、数据类型丰富、可读性强和对生物信息学支持良好,已成为数据科学、生物信息学与科研计算的首选平台之一;学习路径应从安装 R/RStudio/Rtools、管理 R 包开始,掌握工作目录、赋值、向量与数据框、文件输入输出,再进入 base R 基础绘图与 ggplot2 高级绘图。
一、课程目标与总体内容
本次课程围绕 R 语言基础展开,主要内容包括:
- R 语言与 RStudio 的窗口认识;
- R 语言基础语法指导;
- R 包安装、调用与常见问题处理;
- 文件输入输出;
- 基础绘图与 ggplot2 高级绘图;
- 实操演练:工作目录、赋值、向量、数据框、数据筛选、保存与加载、绘图。
课程最后强调:R 语言基础需要后续自行消化,对某些函数或参数应主动探索。
二、R 语言背景与核心优势
1. 起源与定位
R 语言最开始是为统计学家设计的,但今天已经成为生物信息学、数据科学和科研计算的首选平台之一。
2. 五个主要优点
- 开源免费
- R 语言及其集成开发环境 RStudio 都可以开源安装和使用。
- 对科研经费有限的学生和实验室友好。
- 意味着可以在任何一台电脑上复现代码。
- 核心理念是向量化
- 不需要写复杂循环去计算成千上万个数字的平均值。
- 只用一个
mean()函数就可以计算 1 万多、几万甚至成千上万个数字的平均值。原文口播为“main 函数”,应为mean()。 - 处理矩阵、线性回归、积分等运算变得简洁高效。
- 数据类型丰富
- R 语言可以把数据组织成数据框。
- 数据框类似 Excel 表格:可以包含数字,也可以包含字符;可以按行、按列、按条件筛选、合并和变换。
- 适合处理生物信息学中的表达矩阵、临床数据等表格数据。
- 可读性较强
- 函数常由常见英文单词或缩写组成,方便读写。
- 管道操作符可以让代码写起来简洁流畅,更容易看懂在做什么。
- 对生物信息学支持非常好
- Bioconductor(原文口播为 bell conductor)是专门为 R 包打造的项目,拥有 2000 多个专用于生物信息学的包。
- 可用于 RNA-seq、单细胞测序、差异分析、基因注释、生存分析等,能找到封装好的成熟 R 包。
三、软件安装:R、RStudio、Rtools
1. R 语言安装
- 可以通过 R 官网安装,也可以在浏览器中检索“R 语言安装”进入官网下载。
- 官网会根据系统提供选择,如 Linux、苹果、Windows。最常见的是 Windows。
- 第一次安装 R 语言时,直接安装
base,base就是 R 语言本身。 - 下载页面标红的位置是最新版本。
- 最新版本可能存在问题:R 语言更新速度非常快,但某些 R 包的更新速度还没有配套到最新 R 语言上。
- 建议安装相对旧一点的版本,与 R 包更新换代速度持平。
- 课程建议可以安装 4.3、4.4 这样的版本;讲师实际安装的版本是 4.2.2,可参考。
- 安装旧版本的方法是点击“先前释放的版本”进行选择。
2. RStudio 安装
- RStudio 是 R 语言的集成开发环境,界面更方便使用 R 语言。
- 先安装好 R 语言,再登录对应网址安装 RStudio。
- 后续使用 R 语言时,主要在 RStudio 中操作。
- RStudio 安装比较简单,按“下一步”即可。
3. Rtools 安装
- Rtools 是第三个需要安装的软件。
- 某些 R 包安装时需要编译环境,尤其是包含 C 语言编译的包,必须用 Rtools 进行编译。
- Rtools 在 R 下载的同一位置选择下载。
- Rtools 版本必须与 R 语言版本一致。
- 例如:R 语言版本是 4.2.2,则 Rtools 必须下载 4.2 版本。
4. 安装要点与版本策略
- R、RStudio、Rtools 三件套中,R 和 RStudio 用于日常使用,Rtools 用于编译部分 R 包。
- R 语言版本与 Rtools 版本必须匹配。
- R 语言不建议盲目追最新版,以免与 R 包兼容性不一致。
四、R 包安装、调用与问题处理
1. 安装前提
- 软件安装好后,使用某些函数之前需要先安装对应的 R 包。
- 包安装好之后,才能正常调用这些函数的功能。
2. 四种安装途径
| 来源 | 用途 | 安装方式 | 注意事项 |
|---|---|---|---|
| CRAN | 大多数基础 R 包 | install.packages("包名") | 括号内包名需要加引号,是固定安装格式 |
| Bioconductor | 生物信息学专用 R 包 | 先安装 BiocManager,再通过它安装 | 常用生物信息学包来源,如 RNA-seq、单细胞等 |
| GitHub | 开发者分享和下载的包 | 先安装 devtools,再安装 GitHub 来源包 | 网络要求高,可挑凌晨等时间,必要时搭梯子 |
| 手动下载 | 网络问题时的备选 | 从官网下载 .tar.gz 源码包,再用基础 R 包安装方式加文件路径安装 | 最后选择,也比较便捷 |
CRAN 安装
- CRAN 里大多数是 R 基础包。
- 在 RStudio 命令行输入
install.packages("包名")。 - 包名需要加引号。
- 例如基础包如
ggplot2(原文口播为“机器 pro two”)等。
Bioconductor 安装
- Bioconductor 封装了许多生物信息学专用 R 包。
- 先安装
BiocManager,再通过它安装 Bioconductor 来源的包。 - 这是比较常用的安装生物信息学 R 包的方法。
GitHub 安装
- 一些开发者把包封装在 GitHub 网站,用于分享和下载。
- GitHub 对网络要求可能比较高。
- 下载时可以尽量挑凌晨等时间;如果实在不行,可能需要搭梯子。
- 先安装
devtools(原文口播为 dio tools),再用基础 R 包安装方式安装 GitHub 来源的包。 - GitHub 包名通常前面带开发者名,整体有一类包放在该开发者下面。原文口播中后文又提到“pc tools”,具体包名需按实际确认。
手动下载安装
- 安装过程中可能出现网络问题。
- 网络慢时,包需要从对应官网下载,再安装配套依赖包,可能安装部分失败或完全无法安装。
- 此时可以从官网下载源码包。
- 示例:在 Bioconductor 官网检索
DCtwo(原文口播,疑似 DESeq2,需确认),下载原包.tar.gz压缩包。 - 然后用基础 R 包安装方式,加上文件所在路径,就可以成功安装。
3. 调用与冲突
- R 包安装好后,用
library(包名)调用,把包的所有功能加入进来。 - 示例:调用
DCtwo包处理高通量测序数据的差异分析,使用该包下的函数如DSC比较组间差异。原文口播的DCtwo、DSC疑似 DESeq2、DESeq,需按实际确认。 - 安装过程中可能出现依赖问题:包会兼容许多依赖包,报错提示某某包没有安装成功或不存在。
- 解决:根据报错提示,把前面需要的依赖包一个一个安装上,最后再安装目标包。
函数冲突
select函数在 R 使用中非常常见,但许多包里面都有。- 直接使用
select时可能提示 conflict,R 不知道该用哪一个包调用该函数。 - 解决:把任意包含该函数的包写在前面,加两个冒号,如
包名::函数名,告诉 R 用哪个包调用该函数。
4. 帮助文档
- 某些函数不会使用时,可以查看 R 包的帮助文档。
- 使用
help函数。 - 不知道包如何使用,可以打两个问号
??包名,询问该包的帮助文档。 - 查看函数帮助:如果已经调用了包,可以用一个问号
?函数名。 - 如果没有调用包,想查看函数使用说明,也可以用问号查看。
- RStudio 的 Help 界面可以跳转到对应包,选择包后查看。
- 帮助界面通常包含:包的整体描述、算法评估链接、用法、参数说明、每个参数的具体介绍、算法介绍、基本用法流程。
5. 更新建议
- R 包一般不建议更新。
- 更新后 R 包使用方法可能变化。
- 例子:
ggplot2作为很多包的依赖包,更新后导致许多依赖它的包报错。GSVA是做基因集富集分析的包,更新后直接使用函数的流程发生变化,从一行代码可能需要写两三行。- 建议:能不更新就不更新。
五、RStudio 界面认识
RStudio 界面大致包括:
- 左边:敲代码的地方。输入
123后按 Enter 键,会输出值。 - 右下角:文件夹。示例路径为
home、kc、2026kc、LECTION1等一级一级目录。LECTION1下有四个示例数据。 - 右上角:
Environment:环境变量。- 第二个:历史记录,即代码历史。
- 另外两个不太实用。
- 绘图展示在
Plots。 - 第三个界面:安装的 R 包,可以看到许多包、包的基本描述和版本。
- 文章写作时,需要记录 R 包版本。
Help界面:用于查看函数帮助文档。输入问号时要用英文状态。- 左下角:展示 R 版本和当前工作路径。讲师 R 版本为 4.2.2。
- 脚本:点击脚本可在左上角打开;可以创建新的 R 脚本;保存为
.R文件,例如111.R;下次可从文件打开。 - 保存:保存当前 R 脚本。
六、R 基础语法
1. 工作目录
- 工作目录是当前所在文件夹。
- 读取数据时,直接读取的路径就是当前文件夹。
- 生成文件、图片或文档,都会在当前文件夹下。
- 获取当前工作目录:
getwd()。 - 示例中工作目录是波浪号
~,与home一样。 - 创建文件夹:
- 本地可以右键创建新文件夹。
- 代码创建新文件夹,引号内是新名字。
- 设置工作目录:
setwd()。 - 示例:在
2026课程下创建lesson1,设置后左下角路径会增加lesson1。 - 再次
getwd()会得到完整文件路径。 - 如果文件夹已存在,再创建会输出警告信息,提示
lesson1已经存在,不需要再创建。
2. 赋值
- 将 2 赋值给 A:
A <- 2<-由小于号加连字符组成。- 打印 A 的值:直接输入
A,或用print(A)。 - 更常用直接输入变量名,比较简洁。
- 赋值方法:
- 推荐:
<-,小于号加连字符。 =与<-效果类似,但不建议,因为条件判断中有==、!=等,容易混淆。- 反向赋值:
4 -> C,把 4 赋值给 C。 - 快捷键:
Alt + 减号可以打出<-。 - 变量之间可以运算,例如
D <- A / C,D 的值为 1.5。 - 运行方式:
- 在某一行的任何地方点击都可以运行。
- 选中某一部分运行更具体。
- 例如只选中
A运行,会打印 A 的值。 - 查看变量数据类型:
class()。 - 示例中 A 是数值型变量。
3. 向量
- 向量是一维数据,用
c()创建。 - 括号内每个数字之间用逗号分隔。
- 示例:
c()中给五个任意数值,赋值给 A,A 就是数值型向量。 - 数值型向量可以任意运算:
- 求和;
- 平均数;
- 中位值;
- 标准差;
- 方差;
- 最小值;
- 最大值;
- 取值范围:
range(); - 向量长度:
length(),查看里面有几个值。 round()函数用于取小数:- 第一个参数是向量名;
- 后面设置小数位数;
- 示例设置一位小数;
- 默认算法是四舍五入;
- 也有直接截断小数的函数。
- 字符型向量:
- 每个单词都要用引号连接。
- 单引号和双引号功能一样。
- 如果加引号,中文符号可能也能用;如果不加引号,中文可能报错,因为 R 一般不能识别中文。
- 快捷加引号:选中数字后直接加引号,会加单引号;加双引号需要
Shift + 引号。 - 混合类型:
- 如果向量中既有数字又有字符,R 会把整个向量强制变成字符型。
- 所以向量中所有元素仍然是相同数据类型。
- 逻辑型向量:
- 值为
TRUE或FALSE。 - 可以用全称,也可以用缩写。
- 打印出来都是全称。
- 类型转换:
as.numeric():把字符型转换成数值型。- 如果字符中有中文或非数字字符,会警告产生
NA。 - 示例中看起来像数字的只有
2025能转换。 - 逻辑型转数字:
TRUE默认转成 1,FALSE默认转成 0。
4. 数据类型
R 中数据类型不只向量,主要包括:
- 向量
- 一维数组。
- 向量中数据必须是相同数据类型。
- 混合数字和字符时,会强制变成字符型向量。
- 矩阵
- 二维数组。
- 增加列,可以有多行多列。
- 每个元素必须是相同数据类型,如全部数值、全部字符、全部逻辑型等。
- 数组
- 与矩阵类似,但维度可以大于二。
- 可以是二维矩阵,也可以是多维。
- 有点像 Excel 的多个表格:
sheet1、sheet2、sheet3,每个 sheet 可以有单独名字。
- 数据框
- 比较重要的数据类型。
- 不同的列可以包含不同的数据类型。
- 可以用
data.frame()创建和转换。 - 分为行和列,可以针对行或列筛选、运算。
- 适合处理生物信息学表达矩阵、临床数据等表格数据。
5. 数据框操作
- 先设置几个不同数据类型的向量:
- A 向量:数值型;
- B 向量:字符型;
- C 向量:逻辑型;
- 每个向量里面都有五个数据。
- 整合成数据框:
data.frame(A, B, C),得到date变量。 - 数据框信息:
- 5 observations,3 variables;
- 列名是向量名;
- 行名默认按数字序号。
- 查看数据框:点击蓝色按钮可显示表格。
- 查看属性:
class(date)显示数据框。 - 取某一列:
date$A,使用美元符号$,键盘上Shift + 4打出。 - 查看每一列数据类型:
- A 列:数值型;
- B 列:字符型;
- C 列:逻辑型。
- 查看整体结构:
str(),显示整体是数据框、五行三列、每列数据类型和具体值。 - 修改行名:
rownames(date) <- c(...),给五行五个名字。 - 修改列名:
colnames(date) <- c(...),给三列三个名字。 - 修改单个列名:
colnames(date)[1] <- "小写名";- 原来第一列叫
age,可以改大小写; - 第二、第三列类似。
- 修改单个行名:与列类似,用
rownames(date)[数字]。 - 提取行列:
date[1:3, 1:2]:提取前三行、前两列;- 逗号左边对行操作,逗号右边对列操作;
- 冒号表示连续;
- 不连续用
c(),如date[c(1,3), c(1,2)]提取第一、三行,第一、二列。 - 按行名和列名提取:
- 可以提取叫“张三”“李四”的两行;
- 以及叫
age、gender的两列。 - 条件筛选:
subset(): - 第一个参数是数据框变量名;
- 第二个参数是条件;
- 例如选择
age > 60的行; - 多条件用逻辑语言,如
age > 60 & gender == "female",表示且,同时满足。 - 基础方括号筛选:
date[date$age > 60 & date$gender == "female", ];- 结果与
subset()一样。 - 说明函数多种多样,基础语法也能达到同样效果。
- 添加新列:
date$BMI <- c(...);- 数据框共五行,所以列里需要给五个数据;
- 添加后会在最后增加一列。
- 鼠标停留在列名上:
- 可显示列信息;
- 例如第一列是数值型,数值范围 20~90;
- 第二列是字符型向量;
- 第三列是逻辑型向量;
- 最后一列是数值型向量。
- 这可以确认某列到底是数值型还是被读成字符型。
- 数值型列可求和、计算中位值等。
6. 变量查看、删除与保存
- 右上角环境变量可直接看到变量。
- 变量很多时,用
ls()列出所有变量。 - 删除某个变量:
rm(B1),右边变量消失。 - 删除所有变量:
- 可以用
ls()列出所有变量,赋值给一个 list,再删除所有列出的变量; - 也可用
rm(list = ls())的组合方法; - RStudio 有扫把按钮,功能等同于清除所有变量。
- 保存工作环境:
save.image("date.RData")保存当前所有工作变量;- 文件出现在当前文件夹;
- RStudio 有蓝色保存按钮,可保存目前环境变量,自动补
.RData后缀; - 例如保存为
date1,会自动成为date1.RData。 - 加载:
- 删除所有变量后,用
load("date.RData")加载,即可恢复原来的变量。 - 非常方便后续继续使用。
七、文件输入输出
1. TXT 文件
- 示例文件是整理过后的表达矩阵,格式为
.txt。 - 读取函数:
read.table()。 - 参数:
- 第一个参数:文件名;
- 第二个参数:分隔符,
read.table()默认分隔符是\t,即文本制表符; header = T:把第一行作为表头;row.names = 1:把第一列作为行名;check.names = F:不检查表头名字,让空格原模原样读入,避免 R 自动把空格变成点。- 表达矩阵:
- 行名是基因名;
- 列名是样本名;
- 数值是基因在某样本中测出的表达量;
- 默认读取进来是数据框形式。
- 如果分隔符错误:
- 无法正确选择列;
- 行还是原来行,但列变成 0 列,无法正确读取。
- 查看 TXT:
- 可直接点开 TXT 文档查看;
- 中间是文本制表符分隔,看起来像空格,实际是 Tab 键。
- 输出 TXT:
write.table(): - 第一个参数:要输出的变量;
- 第二个参数:文件名,后缀
.txt; - 分隔符
\t; row.names = F:不保存行名,因为行名可能和第一列一样;quote = F:去掉引号,避免在 Excel 表格中看到引号。
2. CSV 文件
- CSV 格式后缀为
.csv。 - 优点:本地和 R 代码交互性好,本地双击打开就是 Excel 表格形式。
- 读写方法与 TXT 类似。
- 读取函数:
read.csv()。 - 第一个参数是文件名,后缀
.csv; - 分隔符是逗号,默认就是逗号,可以省略该参数;
- 其他参数与
read.table()一样。 - 用记事本打开 CSV,可以看到每两个字符之间用英文逗号分隔。
- 输出 CSV:
write.csv(): - 第一个参数是变量名;
- 第二个参数是文件名,后缀
.csv; - 分隔符是逗号;
- 是否保存行名;
quote = F不加引号。- 示例中 TXT 和 CSV 两个文档内容一模一样,只是输出格式不同。
3. RData 过程文件
- 如果不想频繁进行本地交互,可以把中间过程文件保存为
.RData。 - 保存函数:
save()。 - 第一个参数是变量;
- 后面是文件名,后缀
.RData; - 可以同时保存几个变量。
- 加载函数:
load(),直接加文件名即可。 RData在 R 使用过程中非常重要。- 示例:保存
esp1为.RData,删除变量后重新加载,格式与原来一模一样。
4. PDF 图片保存
- 常见推荐保存图片格式是 PDF。
- PDF 是矢量图,放大缩小都比较清晰。
- 发文章需要组图或转换成 TIFF、PNG 时,用 PDF 转换比较方便。
- 保存过程:
- 创建 PDF 画布,指定文件名、宽度、高度;
- 中间写绘图函数;
- 最后关闭画布。
- 在文件夹下会生成对应 PDF 文件。
- RStudio 也可手动保存:
Plots按钮可预览并手动保存;- 可保存为 PNG、JPEG 等;
- 可修改文件名;
- 默认文件名可能是
airport,保存 PDF 默认可能是airport01; - 宽度和高度比例可以设置,PDF 单位是英寸。
- 代码保存时注意图形设备状态:
- 如果检查图形设备状态输出为 2,说明 Plots 还有图片画布没有全部关闭;
- 建议绘图时保持只有一个图形设备,避免其他图片干扰;
- 熟悉后知道会优先绘制 PDF 画布,但出现 2 时通常意味着 Plots 还有图未关闭。
八、基础绘图(base R)
1. 临床示例数据
- 示例数据
PH1是 TCGA 临床数据。 - 行名是 TCGA 样本名。
- 共五列:
- 第一列:风险评分,数值型;
- 后面四列:分类变量,字符型数据。
- 具体分类:
age:分为大于等于 60 和小于 60,即老年人和小于 60 岁的人;stage:病理分期,一般有 1、2、3、4 四种状态;grade:肿瘤分级;group:肿瘤组或对照组。- 用
table()查看某列分类统计: - 例如
table(stage); - 统计出 stage2、stage3、stage4 等分类及数量、频数。
2. 条形图与堆积条形图
- 用
barplot()绘制简单条形图。 - 可把
table(stage)复制为bar变量。 class(bar)显示为table,即分类统计表。- 绘制:
- 输入变量
bar; main:整体图片标题;xlab:X 轴标题;ylab:Y 轴标题。- 可修改名字,把“0 几”去掉。
- 可手动保存为 PDF 图片,或用代码保存。
- 修改条形图:
horiz = T:翻转坐标轴,让条形图横向放置;- 修改颜色:颜色按 table 顺序给;
- 示例中三种颜色,蓝色没有用到;
- stage2 对应红色,stage3、stage4 依次;
- 三个分类给三个颜色即可;
- 给多个颜色一般不报错,但用不到;
- 给两个颜色会重复使用,如红橙红橙。
- 堆积条形图:
- 可统计两个分类变量,如
stage和age; - 用
barplot()绘制整体堆积图; - 设置标题、X 轴标题、Y 轴标题、图例;
- 图例展示每个分类对应颜色;
- 示例给了四个颜色,其实给三个即可;
- 图例默认在右边
right,可能遮挡主体; - 可调整图例位置,如纵坐标 150 以上,设置为 220 或 300,避免遮挡组图;
bty = "o"有黑色边框;bty = "n"无边框;- 不会使用参数时,用
?barplot查看帮助,帮助中有参数说明和示例。
3. 饼图与管道操作符
- 使用管道操作符
%>%可以简化书写。 - 示例:
table(stage)后直接转成数据框;- 需要加载
tidyverse包,它包含许多数据处理 R 包; - 加载时会提示 conflict,如
filter等函数在不同包中都有,需要指定包前缀,通常不影响使用。 - 管道含义:
- 先把
table(stage)赋值给data1; - 再对
data1转成数据框; - 两行代码变成一行,即
data2与data结果一样。 - 转成数据框后:
- 第一列固定是
Var1,即统计的 stage 数据; - 如果统计两列,则是
Var1和Var2; - 频数列固定是
Freq。 - 绘制饼图:
pie(): - 给
Freq列作为频数; - 标签用
Var1列,即分类值; main是主标题,pie是饼图单词。- 修改细节:
- 计算百分比:
Freq / sum(Freq) * 100; - 用
round()保留三位小数; - 用
paste()粘贴字符串:分类、空格、百分比、百分号; - 修改主标题、颜色,美化饼图。
九、ggplot2 高级绘图
1. 安装与数据准备
- 安装
ggplot2:用基础 CRAN 官网安装方式,install.packages()。 - 加载:
library(ggplot2)。 - 可保存图片、删除变量后再继续。
2. 两个基因相关性散点图
- 读取表达矩阵示例数据。
- 提取任意两行数据,即两个基因。
- 转置:
t()函数让行列颠倒,因为 ggplot2 一般按列绘图。 - 转置后行是样本名,列是基因名。
- 转置后不再是数据框,需要再用
data.frame()转成数据框。 - 打印列名,方便复制 X 坐标和 Y 坐标的基因名。
- 创建画布:
ggplot(data, aes(x = ADAM11, y = ABCD4));aes是美学映射,确定 X 轴和 Y 轴;- 右下角会出现 X、Y 统计的最大值、最小值刻度。
- 叠加点图:
geom_point(size = 5);- 点大小设为 5;
- 默认颜色为黑色。
- 加回归线:
geom_smooth(method = "lm", color = "red", se = TRUE);method = "lm"表示线性回归;- 线的颜色为红色;
- 95% 置信区间。
- 修改主题:
- 默认灰色背景不好看;
- 可用
theme_bw(),简约主题,白色背景,加外边框; - 也可用更简约主题,去掉网格线;
- 可用
theme()系列函数了解主题细节。 - 这就是相关性散点图。
3. GO 富集气泡图
- 读取示例数据:GO 富集分析结果。
- 数据列:
- 分类:GO 数据库分三类:BP、CC、MF;
- GO 数据库 ID 号;
- 具体功能名字;
- 基因比例,即比值结果;
- 也是比值;
- 富集显著性 P 值和校正 P 值;示例中两个值一模一样,说明没有进行校正;
- Q 值;
- 基因 ID,即富集到的基因具体名称;
count数,即富集到的基因个数。
count与基因比例的分子一样,都是富集到的基因个数;分母是输入基因个数。- 提取任意几行,如前十行。
- 打印列名方便复制。
- 创建画布:
- X 轴为基因比例;
- Y 轴为具体功能名字。
- 添加点:
geom_point(size = 5),点大小固定。 - 可根据
count数给点大小赋值,点大小随富集基因个数变大,并出现图例。 - 可修改点颜色:
- 按 P 值颜色绘制;
- 渐变色,越偏深蓝色说明越显著;
- 可调整:P 值小为绿色,P 值大为红色。
- 修改标题:
- X 轴和 Y 轴标题默认是列名;
- 可修改 X/Y 标题;
size图例名称改为count;title代表主标题。- 最后设置简约主题。
- 气泡图基本调整大小关系后可放入文章。
4. GO 富集条形图
- 读取富集分析结果,取前十行,打印列名。
- 绘制条形图:
geom_bar()。 - 默认统计分类方法。
- 设置:
- X 轴为功能名称;
- Y 轴为 P 值。
- 问题:X 轴通路名称太长,叠在一起。
- 解决:用
coord_flip()转换坐标轴,让通路按列排列,更清晰。 - 细节设置:
- 条形图颜色按 P 值给;
- 转换坐标轴;
- 修改 X/Y 标题和主标题;
- 增加辅助线:因为 X/Y 颠倒,画出来是 X 的 P 值线;设置
0.001,红色线条,线型第 3 种; - 修改主题;
- 不展示图例:
legend = "none"或主题设置; - 图例也可以展示;
- X 轴 P 值也可以不展示。
5. 临床数据箱线图/“镶嵌图”
- 原文口播为“镶嵌图”,但后文明确提到
box plot,应理解为箱线图。 - 读取临床数据。
- Y 轴需要数值型数据,本数据中只有风险评分
risk score是数值型,所以只能作为 Y 轴。 - 分类数据如
age等可作 X 轴。 - 加载某个包用于设置主题和颜色配色(原文未明确包名)。
- 用
head()方便复制列名,也可打印colnames()查看列名。 table(age)查看 age 分类。- 创建画布:
- X 轴为
age; - Y 轴为
risk score; - 添加箱线图
geom_boxplot(); - 按 age 分组,给颜色;
- 默认两个颜色。
- 可修改 X/Y 标题。
- 指定颜色:
- 例如绿色和红色;
- 也可用内置色板,如
set2的前两种颜色,绿色和橙色。 - 主题设置:
- 绘制整体主题风格,相对简约,外加边框;
- 去掉网格线:将元素设为空;
- 去掉外边框;
- 坐标轴直线变成黑色,默认是灰色;
- 设置文字大小:Y 轴坐标、X 轴坐标、标题、图例坐标的文本大小等细节。
十、限制与待确认问题
- 原文是口播转录,部分包名、函数名、参数名存在音近误写或不确定:
- “机器 pro two”很可能指
ggplot2; - “bell conductor”指 Bioconductor;
- “R托斯”指 Rtools;
- “DCtwo”“DSC”疑似
DESeq2、DESeq,需按实际确认; - “dio tools”指
devtools; - 后文“pc tools”具体包名不明确;
- “teddy verse”指
tidyverse; - “金point”“金棒”分别指
geom_point、geom_bar。 - 原文未给出具体安装网址,只说明可在官网或浏览器检索。
- R 版本建议为 4.3、4.4,但示例安装为 4.2.2;Rtools 必须与 R 版本一致。
- 向量示例中取值范围原文口播为“-2~67”,随后又说“最小值是二,最大值是 67”,存在口播矛盾。
- 部分函数参数没有给出完整代码,如
check.names = F、quote = F、horiz = T、图例位置、coord_flip()、theme()细节等,需要查帮助文档确认。 - 图形设备状态“输出为 2”的具体函数名原文口播不清,需结合实际 RStudio 检查。
- “镶嵌图”应为口误,结合后文
box plot理解为箱线图。
十一、行动清单
- 安装 R、RStudio、Rtools,确保 Rtools 与 R 版本一致。
- 安装 R 包:优先 CRAN 和 Bioconductor;GitHub 注意网络;失败时手动下载
.tar.gz安装。 - 使用
library()调用包;冲突时用包名::函数名;不会用?函数名、??包名查帮助。 - R 包能不更新就不更新,记录文章所用包版本。
- 练习工作目录:
getwd()、setwd()、创建文件夹。 - 练习赋值:
<-、->、Alt + 减号,以及变量运算。 - 练习向量:
c()、mean()、sum()、range()、length()、round()、class()、类型转换。 - 练习数据框:
data.frame()、$、str()、行列名修改、行列提取、subset()、条件筛选、添加列。 - 练习输入输出:
read.table()、read.csv()、write.table()、write.csv()、save()、load()、save.image()。 - 练习保存 PDF 矢量图;注意图形设备状态。
- 练习 base R 绘图:
barplot()、pie()、table()、legend()。 - 练习 ggplot2:散点图、气泡图、条形图、箱线图,熟悉
aes()、geom_*()、theme_*()、coord_flip()。
十二、总结
本次课程从 R 语言的优势和安装开始,依次介绍了 R、RStudio、Rtools 的安装关系与版本要求,R 包的四种安装来源、调用、冲突处理和帮助文档,RStudio 界面,R 基础语法中的工作目录、赋值、向量、数据类型、数据框操作,文件输入输出与 PDF 保存,以及 base R 和 ggplot2 的基础绘图。后续需要自己消化函数和参数,结合示例数据反复练习读取、筛选、保存与绘图流程。