第1章:R与RStudio安装及基础操作
我刚开始接触生物信息学的时候,第一件事就是装好R和RStudio。说实话,这个配置看似简单,但很多新手都栽在环境上了。今天咱们就把它讲透。
1.1 下载与安装
去 CRAN(The Comprehensive R Archive Network)下载对应系统的R。Windows用户直接点“.exe”,macOS用户选“.pkg”。安装时默认路径就行,别改——我见过有人改到中文目录,结果包装不上,排查半天。
RStudio是IDE,去官网下免费版。先装R,再装RStudio,顺序不要反。装完打开RStudio,你会看到四个窗格:
- 左上角:脚本编辑区
- 左下角:控制台(Console)
- 右上角:环境/历史
- 右下角:文件/图/包/帮助
1.2 基础数据类型
R的变量不用声明类型,直接赋值。常见数据类型有:
| 类型 | 举例 | 说明 |
|---|---|---|
| 数值(numeric) | 3.14 | 整数或小数 |
| 字符(character) | "物种" | 用引号包裹 |
| 逻辑(logical) | TRUE / FALSE | 大写,不能用true |
| 整数(integer) | 10L | 加L后缀 |
| 复数(complex) | 2+3i | 很少用 |
用class()函数查类型,用is.numeric()判断。我个人调试时最喜欢用str()——它能把对象结构全打出来,比class()详细得多。
x <- 42
class(x) # "numeric"
is.character(x) # FALSE
y <- "丰度"
class(y) # "character"
1.3 向量——一切数据的基石
向量是R里最核心的数据结构。同一向量里元素类型必须一致。创建用c()函数:
otu_count <- c(120, 85, 340, 67) # 数值向量
sample_names <- c("S01", "S02", "S03") # 字符向量
向量索引从1开始,不是0!我刚开始总忘记这一点,写循环时出过好多bug。
otu_count[2] # 85
otu_count[c(1,3)] # 120 340
otu_count[-2] # 去掉第二个元素
as.numeric()强制转换前一定要确认数据源。
向量运算非常方便:
counts <- c(10, 20, 30)
relative <- counts / sum(counts) # 0.1667 0.3333 0.5000
1.4 数据框——表格数据的标准形态
数据框像Excel表格,每列可存不同类型。用data.frame()创建:
df <- data.frame(
sample_id = c("A1", "A2", "B1"),
phylum = c("Firmicutes", "Bacteroidetes", "Firmicutes"),
abundance = c(0.45, 0.30, 0.55)
)
访问列用$或[,]:
df$phylum # 因子型?注意!
df[1, ] # 第一行
df[ , "abundance"] # abundance列
str(df)会告诉你每列类型。繁殖时用read.csv()读入外部数据,编码默认UTF-8,Windows下容易乱码——我一般加fileEncoding="UTF-8"保险。
1.5 包管理——扩展R的能力
R的强大在于包。安装命令:
install.packages("vegan") # 生态学常用
install.packages("ggplot2") # 绘图神器
加载包用library():
library(vegan)
library(tidyverse) # 加载整个套件
我建议用require()代替library(),因为require()返回TRUE/FALSE,适合在脚本里做条件判断。
installed.packages()查看已装包;用update.packages()批量更新。别一次更新所有包——我遇到过更新后代码跑不动的惨案,最好分批次更新。
从GitHub安装包需要devtools:
install.packages("devtools")
devtools::install_github("jokergoo/ComplexHeatmap")
1.6 知识框架总览
下面这张图概括了本章的核心脉络,你想想看,是不是一目了然?
1.7 实操检查清单
看完理论,你最好自己在RStudio里敲一遍。我列个清单:
- 装好R和RStudio,能打开控制台
- 创建向量并做加减乘除
- 建一个3列5行的数据框,用
str()查看 - 安装ggplot2包,加载成功
总结一句话:数据类型是砖,向量是墙,数据框是房间,包管理是装修工具。打好这个地基,后面分析物种丰度才顺手。