第1章:R语言基础入门——从安装到上手操作
好,咱们正式开始。作为一门需要实际写代码的课程,我先把最基础的环境和概念讲清楚。你想想看,后面所有的物种丰度图、热图、堆叠柱状图,都得跑在R上。所以第一章,我带你走一遍R和RStudio的安装、R包怎么管理、工作目录怎么设,以及最常用的数据结构和向量操作。
我个人习惯是:先装好基础环境,再一步步熟悉语法。别急着跑复杂的脚本,先把“开车”的手感练出来。
本章核心:搭好开发环境 + 掌握R的基本数据类型与向量操作。这是后续所有可视化的地基。
1.1 R与RStudio的安装
R是计算引擎,RStudio是IDE(集成开发环境)。我建议两者都装,因为RStudio的代码补全、文件浏览、绘图预览在分析宏基因组数据时太方便了。
步骤很简单:
- 去 CRAN(https://cran.r-project.org/)下载对应你操作系统的R安装包。
- 安装时全部默认选项即可,注意如果Windows系统,勾选“将R添加到系统PATH”。
- 去 RStudio官网(https://posit.co/download/rstudio-desktop/)下载免费开源的RStudio Desktop版。
- 安装后打开RStudio,左侧是控制台,右侧是环境/文件/绘图面板。
我的小经验: 第一次打开RStudio,在控制台输入
version 检查R版本。宏基因组分析常用包(比如phyloseq、vegan)对R版本有要求,至少3.6以上,推荐4.x。1.2 R包管理
R之所以强大,靠的就是社区贡献的海量包。宏基因组分析离不开三个仓库:
- CRAN:官方仓库,用
install.packages()安装 - Bioconductor:生物信息专用仓库,用
BiocManager::install()安装 - GitHub:开发者直传,用
devtools::install_github()安装
安装命令示例:
# 从CRAN安装
install.packages("vegan")
install.packages("ggplot2")
# 从Bioconductor安装(先装BiocManager)
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("phyloseq")
BiocManager::install("microbiome")
# 从GitHub安装
install.packages("devtools")
devtools::install_github("joey711/phyloseq")
避坑指南: 我曾经在Windows上装phyloseq时卡了半小时,原因是系统缺少依赖——Rtools没装。解决办法:安装Rtools(https://cran.r-project.org/bin/windows/Rtools/),然后在控制台运行
writeLines('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron")。记得重启RStudio。查看已安装的包:
# 列出所有已安装包
installed.packages()
# 加载包
library(vegan)
library(phyloseq)
# 卸载包
remove.packages("unwanted_package")
1.3 工作目录设置
很多新手上来就写 setwd("C:/Users/xxx/Desktop"),然后读文件报错“找不到文件”。为什么?因为路径写错了,或者反斜杠没转义。
我习惯这样做:
- 创建一个项目文件夹,比如
microbiome_project。 - 在RStudio中通过 File → New Project → Existing Directory 创建项目。
- 或者直接用
setwd()指定绝对路径。
# 查看当前工作目录
getwd()
# 设置工作目录(注意:Windows路径用正斜杠或双反斜杠)
setwd("C:/Users/yourname/microbiome_project")
# 或者
setwd("C:\\Users\\yourname\\microbiome_project")
我的习惯: 每次新分析,我都会建一个
00_scripts、01_data、02_results 子文件夹,然后在R脚本开头写一句 setwd(dirname(rstudioapi::getActiveDocumentContext()$path)),自动把工作目录设到脚本所在位置。这样换电脑也不怕。1.4 基本数据类型与向量操作
R的数据类型不多,但概念必须清晰。我们常用这几种:
| 数据类型 | 示例 | 说明 |
|---|---|---|
| 数值型 (numeric) | 3.14, 42 | 整数和浮点数都属于此 |
| 字符型 (character) | "Firmicutes", "Bacteroidetes" | 字符串,用引号括起来 |
| 逻辑型 (logical) | TRUE, FALSE | 比较运算的结果 |
| 因子型 (factor) | factor(c("A","B","A")) | 分类变量,背后是整数编码 |
其中,向量 (vector) 是R里最核心的数据结构。它是一组相同类型元素的集合。创建向量用 c() 函数:
# 数值向量
abundance <- c(112, 45, 678, 23, 89)
# 字符向量
taxa_names <- c("Bacteroides", "Prevotella", "Faecalibacterium")
# 逻辑向量
compare <- abundance > 100 # 返回 TRUE FALSE TRUE FALSE FALSE
# 因子向量(宏基因组中的分组变量常用)
group <- factor(c("Control", "Case", "Control", "Case", "Case"))
向量操作:
# 向量化运算(无需循环)
abundance * 2 # 每个元素乘以2
abundance / sum(abundance) * 100 # 转换为相对丰度(百分比)
# 索引与子集
taxa_names[1] # 第一个元素
taxa_names[c(1,3)] # 第一和第三
abundance[abundance > 100] # 筛选大于100的元素
# 常用函数
length(abundance) # 长度
sum(abundance) # 总和
mean(abundance) # 均值
max(abundance) # 最大值
which.max(abundance) # 最大值的位置
记住:R里几乎所有运算都是向量化的。你写
abundance / sum(abundance) 就能完成所有元素同时除以总和,不用写循环。这是R高效的地方。1.5 知识框架总览
我把本章涉及的内容画成一张图,方便你对照:
我的建议: 第1章内容不用强记所有命令,但一定要亲手把RStudio装好,至少创建两个向量(比如物种名和丰度)并试着做加减乘除和筛选。下次你处理OTU表格时,这些操作会反复出现。
嗯,第一章就到这里。环境搭好了,语法入门了,后面咱们就可以开始跟宏基因组数据打交道了。