R 语言快速参考备忘清单:从环境入门到向量运算与数据可视化
【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址: https://gitcode.com/jaywcjlove/reference
本篇指南以开源仓库 jaywcjlove/reference 中的 R 语言备忘清单 为主体,系统梳理 R 语言从环境配置、基础语法、控制流、数据结构,到图形绘制与向量索引的完整速查体系。读完本篇,你将能够快速定位 R 中帮助与包管理、数据读写、循环与函数定义、常用绘图函数,以及向量创建与子集选取的全部高频用法,并可直接在仓库中查看原文与本地预览效果。
一、入门:帮助、包管理与工作目录
R 语言最常用的入门动作有三类:查阅帮助文档、安装加载第三方包、管理当前工作目录。这一部分对应 docs/r.md 的"入门"章节。
获取帮助与对象信息
R 内置了完善的帮助系统,?与help系列函数是日常排错的第一入口:
?mean # 获取特定功能的帮助 help.search('weighted mean') # 在帮助文件中搜索单词或短语 help(package = 'dplyr') # 查找软件包的帮助?mean等价于help("mean"),打开对应函数的帮助文档;help.search()在全量帮助文档中按关键词模糊检索,适合只知道功能、不知道函数名的情况;help(package = 'dplyr')查看某个已安装包的全部帮助条目。
对于运行中的对象,str()与class()是最常用的"体检"工具:
str(iris) # 获取对象结构的摘要 class(iris) # 查找对象所属的类iris是 R 内置的鸢尾花数据集(150 行 4 列数值特征加 1 列品种标签)。str()会输出对象的类型、维度与各列类型,而class()返回对象所属的类(如data.frame、numeric、character等),是判断数据结构、决定后续操作方式的第一步。
下载和使用库
R 的生态通过包(package)扩展。官方仓库 CRAN、生物信息学常用的 Bioconductor,以及 GitHub 上未发布到官方仓库的开发版包,分别有不同的安装方式:
install.packages('dplyr') # 从 CRAN 下载并安装软件包 install.packages("BiocManager") library(BiocManager) BiocManager::install("dplyr") # 使用 Bioconductor 的 BiocManager 包下载并安装软件包 devtools::install_github("clusterProfiler") # 直接从 GitHub 中下载并安装软件包 library(dplyr) # 将包加载到会话中,使其所有功能可供使用 dplyr::select # 使用包中的特定函数 data(iris) # 将内置数据集加载到环境中几个容易混淆的要点:
install.packages()负责安装,library()负责加载,两者缺一不可;BiocManager::install()中::的作用是"不加载整个包、直接调用包内的某个函数",同理dplyr::select只取用dplyr包中的select函数,避免与其他包的同名函数冲突(例如MASS包也有select);devtools::install_github()需要预先安装devtools包,且依赖本机可访问 GitHub;data(iris)将内置数据集载入当前环境,是练习数据操作的标准姿势。
工作目录
R 读写文件的相对路径都基于当前工作目录解析:
getwd() # 查找当前工作目录(输入从这里找到,输出发送到这里) setwd('C://file/path') # 更改当前工作目录getwd()返回当前工作目录,setwd()修改之。备忘清单中还特别建议:使用 RStudio 中的项目(Project)功能,让 RStudio 自动把工作目录设置为项目所在文件夹,避免每次启动都手动setwd(),这是团队协作与脚本可复现性的良好实践。
二、基础语法:变量、类型、结构与控制流
这一部分是 docs/r.md 的"基础入门"章节,覆盖了编写任何 R 脚本都绕不开的核心语法。
变量和赋值
x <- 10 # 使用箭头赋值 y = 20 # 或者直接使用等号赋值<-是 R 社区推荐的赋值方式(在 RStudio 中可用快捷键Alt + -快速输入),=也完全合法。此外还有反向箭头20 -> y与函数式赋值assign("x", 10),但前两种足够覆盖绝大多数场景。赋值后会立即在环境(Environment)中创建对应变量。
数据类型
numeric_var <- 3.14 # 数值型 character_var <- "hello" # 字符串(字符型) logical_var <- TRUE # 逻辑型R 的基础数据类型至少还包括:
integer整数型(如1L,带L后缀);factor因子型,用于分类变量,在统计建模中会被特殊处理;- 缺失值
NA、空值NULL、非数值NaN与无穷Inf,这些特殊值在数据清洗时经常需要判空处理。
可以用typeof()、class()与is.numeric()等函数随时检验变量类型。
向量和列表
向量(vector)是 R 中最基本的数据结构,列表(list)则可以容纳不同类型、不同长度的元素:
# 向量 numeric_vector <- c(1, 2, 3, 4) character_vector <- c("apple", "orange", "banana") # 列表 my_list <- list(name = "John", age = 30, city = "New York")c()(combine)用于把元素拼接成向量,同一向量内所有元素必须同类型,否则 R 会自动做类型转换(如字符与数值混合时数值会被转为字符);- 列表通过
list()创建,每个元素可以命名,通过my_list$name或my_list[["name"]]取用; - 向量和列表是后续数据框、矩阵等复杂结构的基础。
向量化运算
R 的向量化(vectorization)特性使其无需显式写循环即可完成批量计算:
# 创建向量 numbers <- c(1, 2, 3, 4, 5) # 计算向量的和 sum_result <- sum(numbers) # 计算向量的平均值 mean_result <- mean(numbers)sum()、mean()等聚合函数直接作用于整个向量;min()、max()、median()、sd()、var()同理。此外,numbers + 1、numbers * 2这类逐元素运算也会自动展开,这是 R 性能与表达力兼备的原因之一。
数据框(Data Frame)
数据框是 R 中"表格"的载体,也是数据分析最常用的结构:
my_df <- data.frame(name = c("John", "Alice"), age = c(30, 25)) # 创建数据框 student_data <- data.frame( name = c("John", "Alice", "Bob"), age = c(25, 23, 22), grade = c("A", "B", "C") ) # 显示数据框 print(student_data)数据框的每一列是一个等长向量,不同列可以有不同的类型。创建后常用的检查与操作包括:
str(student_data)查看结构、head(student_data)查看前几行、summary(student_data)查看每列统计摘要;student_data$name取某一列,student_data[1, ]取某一行,student_data[, "age"]取某一列;nrow()/ncol()/dim()查看维度,names()查看列名。
函数
# 定义函数 add_numbers <- function(a, b) { result <- a + b return(result) } # 调用函数 sum_result <- add_numbers(10, 5)R 函数以function(参数列表) { 函数体 }定义,return()显式返回结果;若函数体最后一行是一个表达式,其值也会被隐式返回。R 函数还支持默认参数值(如function(a, b = 1))、命名参数调用(add_numbers(b = 5, a = 10))以及...可变参数,这些在阅读第三方包源码时非常常见。
条件语句
if (x > 0) { print("Positive") } else { print("Non-positive") }if/else的条件必须返回单个逻辑值TRUE或FALSE。注意:if对长度为 1 的逻辑向量生效;若条件本身是一个向量(如x > 0且x是多元素向量),if只会使用第一个元素并给出警告,此时应改用向量化的ifelse(condition, yes, no)。
for 循环语句
for (i in 1:5) { print(i) }for循环遍历序列1:5(即 1、2、3、4、5)并逐次执行循环体。R 中的for可以遍历任意可迭代对象,例如字符向量、列表的索引等。由于向量化特性的存在,能用apply家族(lapply、sapply、vapply)或purrr包解决的遍历,通常比显式for循环更简洁。
while 循环
counter <- 1 while (counter <= 5) { print(counter) counter <- counter + 1 }while在条件为TRUE时反复执行循环体,本例用计数器实现 1 到 5 的输出。使用while务必确保循环条件最终会被打破(如本例中counter逐次递增),否则会陷入死循环;break可提前跳出,next可跳过本次迭代。
数据读取和输出
# 读取数据 my_data <- read.csv("data.csv") # 输出数据 write.csv(my_data, "output.csv")read.csv()读取逗号分隔的 CSV 文件,返回数据框;默认第一行为列名,header = FALSE可关闭;write.csv()将数据框写出为 CSV,row.names = FALSE可避免输出多余的行号列;- 更大规模的场景可使用
read.table()读取自定义分隔符文件,或配合readxl(Excel)、data.table::fread()(超大文件)、haven(SPSS/SAS/Stata)等生态包。
清理工作空间
# 清空所有变量 rm(list = ls()) # 退出 R q()ls()列出当前环境所有对象,rm(list = ls())将它们全部删除,是脚本收尾或切换任务时常用的"重置"手段。q()退出 R 会话,退出时 R 会询问是否保存工作空间镜像(.RData)。在交互式分析之外,建议在脚本中显式管理变量,避免依赖工作空间镜像,保证可复现性。
三、图形绘制:从散点图到直方图与线图
Base R 的绘图系统无需安装任何包即可完成基础可视化,对应 docs/r.md 的"图形绘制"章节。所有绘图函数都会在当前图形设备(窗口或文件)上输出。
散点图
plot(x, y)plot(x, y)是散点图(scatter plot)的标准调用:x为横轴向量,y为纵轴向量,两者长度必须一致。完整版可以同时指定标题与坐标轴标签:
x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 5, 6, 7) plot(x, y, main = "Scatter Plot", xlab = "X-axis", ylab = "Y-axis")其中main设置图标题,xlab/ylab分别设置横纵轴标签。常用附加参数还包括:col(颜色)、pch(点形状)、cex(点大小)、type(图形类型)。
直方图
hist(data)hist()用于绘制数值分布的直方图(histogram),自动将数据分箱并统计频数。带参数的完整示例:
data <- c(1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5) hist(data, main = "Histogram", xlab = "Value", col = "lightblue")col参数填充柱体颜色(本例为浅蓝色lightblue)。可通过breaks控制分箱数量,通过freq = FALSE将纵轴切换为概率密度。
折线图
plot(x, y, type = "l")plot(x, y, type = "l")中type = "l"(line)将散点连成折线,即线图/折线图。完整示例:
x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 5, 6, 7) plot(x, y, type = "l", main = "Line Plot", xlab = "X-axis", ylab = "Y-axis")type参数的其他常用取值:"p"(仅点,默认)、"b"(点线同时绘制)、"o"(线穿过点)。在折线图上叠加多组数据时,可用lines()追加,配合col区分系列。若要更现代、更美观的可视化,可在熟练掌握 Base R 绘图后进一步学习ggplot2的图层语法。
四、向量操作进阶:创建、索引与去重
向量是 R 数据操作的基石,docs/r.md 的"向量"章节以速查表形式集中给出了创建、子集选取与整理的常用写法,下面逐一展开。
创建向量
| 表达式 | 结果 | 说明 |
|---|---|---|
c(2, 4, 6) | 2 4 6 | 将元素连接成向量 |
2:6 | 2 3 4 5 6 | 整数序列 |
seq(2, 3, by=0.5) | 2.0 2.5 3.0 | 复杂序列(按步长生成) |
rep(1:2, times=3) | 1 2 1 2 1 2 | 重复整个向量 |
rep(1:2, each=3) | 1 1 1 2 2 2 | 重复向量的每个元素 |
c()拼接任意数量的元素;:生成连续整数序列,也常用于循环与切片;seq(from, to, by)按指定步长生成序列,length.out可指定生成个数;rep(x, times = n)整体重复n次,rep(x, each = n)则每个元素先重复n次——二者顺序完全不同,是高频易混点。
按位置选择元素
| 表达式 | 说明 |
|---|---|
x[4] | 第四个元素 |
x[-4] | 除了第四个之外的所有元素 |
x[2:4] | 元素二到四 |
x[-(2:4)] | 除二到四之外的所有元素 |
x[c(1, 5)] | 元素一和元素五 |
R 的索引从 1 开始(与 Python 等语言不同);负数索引表示"排除",x[-4]即返回除第 4 个元素外的全部元素;x[c(1, 5)]展示了下标本身也可以是向量。
按值选择元素
| 表达式 | 说明 |
|---|---|
x[x == 10] | 等于 10 的元素 |
x[x < 0] | 所有小于零的元素 |
x[x %in% c(1, 2, 5)] | 集合 1, 2, 5 中的元素 |
这一形式称为逻辑索引(logical indexing):x == 10生成与x等长的逻辑向量,[ ]据此挑选出对应位置为TRUE的元素。%in%是 R 特有的集合匹配运算符,用于判断左侧向量的每个元素是否出现在右侧集合中,是数据筛选(如按 ID 列表取子集)的高频写法。
命名向量
| 表达式 | 说明 |
|---|---|
x['apple'] | 名为 "apple" 的元素 |
向量元素可以命名,例如x <- c(apple = 1, banana = 2)。此时除按位置索引外,还可以用名称字符串x['apple']直接取值(x[["apple"]]返回去掉名字的纯值),这在字典式查询和代码可读性上非常实用。
排序、反转、计数与去重
| 表达式 | 说明 |
|---|---|
sort(x) | 返回排序后的 x |
rev(x) | 返回 x 的反转 |
table(x) | 查看值的计数 |
unique(x) | 查看唯一值 |
sort(x)默认升序,decreasing = TRUE可降序;order(x)则返回排序后的下标,常用于按某列排序整个数据框;rev(x)反转元素顺序;table(x)生成频数表,返回每个取值出现的次数,是快速统计分布的工具;unique(x)去除重复值后返回去重结果,常与length()组合计算唯一值个数。
五、在本仓库中查阅与本地预览这份清单
这篇 R 备忘清单位于仓库的 docs/r.md,并在首页 README.md 的"编程"分类中以R 语言卡片对外展示(卡片图标对应 assets/r.svg)。值得说明的是:
- 原文中的
<!--rehype:...-->注释(如row-span-2、col-span-2、wrap-text、left-align)并非内容,而是本项目特有的排版指令,用于控制备忘清单卡片在网页上的网格跨行、跨列与文本换行样式; - 这些排版约定在 docs/quickreference.md 中有完整的样式参考与用法说明,读者若想了解这类速查表文档的撰写规范,可参阅该文件以及 CONTRIBUTING.md;
- 如需本地预览,可在克隆仓库后执行
npm install安装依赖(见 package.json),再运行npm run build编译生成 HTML 到dist目录,或使用npm start监听 Markdown 变更并实时编译。
六、延伸学习资源
备忘清单末尾还推荐了一系列深入学习方向,均以 R 官方或社区公认的权威资料为参考(此处仅作文字说明,不附外部链接):
- 全面了解 Base R 的笔记型书籍,适合系统补全基础语法;
- R 语言官方网站,获取官方文档与 CRAN 软件包仓库入口;
- 《数据科学 R》(R for Data Science),tidyverse 生态的入门经典;
- 《使用 R 进行整洁的建模》(Tidy Modeling with R),面向建模流程的实践指南;
- 使用 mlr3 进行应用机器学习的在线书籍,覆盖完整机器学习工作流;
- 深度学习方向的书籍,介绍 R 中的神经网络与深度学习实现;
- rdrr.io 与 R Documentation 两个聚合检索站点,可搜索任意 R 包、函数与文档。
结合本篇速查清单,从帮助系统、包管理与基础语法起步,到向量索引与 Base R 绘图收尾,你已具备独立阅读和编写 R 脚本所需的完整语法地图;后续只需在实践中不断查阅 docs/r.md 原文,即可快速积累实战经验。
【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址: https://gitcode.com/jaywcjlove/reference
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考