第1章:R与RStudio安装及基础操作

我刚开始接触生物信息学的时候,第一件事就是装好R和RStudio。说实话,这个配置看似简单,但很多新手都栽在环境上了。今天咱们就把它讲透。

1.1 下载与安装

去 CRAN(The Comprehensive R Archive Network)下载对应系统的R。Windows用户直接点“.exe”,macOS用户选“.pkg”。安装时默认路径就行,别改——我见过有人改到中文目录,结果包装不上,排查半天。

RStudio是IDE,去官网下免费版。先装R,再装RStudio,顺序不要反。装完打开RStudio,你会看到四个窗格:

  • 左上角:脚本编辑区
  • 左下角:控制台(Console)
  • 右上角:环境/历史
  • 右下角:文件/图/包/帮助
小技巧:我习惯把RStudio主题改成“Tomorrow Night Bright”(Tools → Global Options → Appearance),眼睛舒服不少。

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]      # 去掉第二个元素
避坑:我曾经在写物种丰度矩阵时把一个字符型向量混进了数值列,R自动把所有值转成了字符,导致后续统计全错——用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 知识框架总览

下面这张图概括了本章的核心脉络,你想想看,是不是一目了然?

R语言基础数据结构与包管理 R语言核心 数据类型 向量 数据框 数值 字符 逻辑/整数 创建:c() 索引:从1开始 向量化运算 data.frame() $ / [,] 访问 read.csv() 包管理 install library 入门要点 1. 数据类型要分清,字符数值别混淆 2. 向量是最小操作单元,索引从1开始 3. 数据框是实战主力,包管理扩展生态

1.7 实操检查清单

看完理论,你最好自己在RStudio里敲一遍。我列个清单:

  1. 装好R和RStudio,能打开控制台
  2. 创建向量并做加减乘除
  3. 建一个3列5行的数据框,用str()查看
  4. 安装ggplot2包,加载成功

总结一句话:数据类型是砖,向量是墙,数据框是房间,包管理是装修工具。打好这个地基,后面分析物种丰度才顺手。