R 语言快速参考备忘清单:从环境入门到向量运算与数据可视化
2026/9/24 19:48:51 网站建设 项目流程

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.framenumericcharacter等),是判断数据结构、决定后续操作方式的第一步。

下载和使用库

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$namemy_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 + 1numbers * 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的条件必须返回单个逻辑值TRUEFALSE。注意:if对长度为 1 的逻辑向量生效;若条件本身是一个向量(如x > 0x是多元素向量),if只会使用第一个元素并给出警告,此时应改用向量化的ifelse(condition, yes, no)

for 循环语句

for (i in 1:5) { print(i) }

for循环遍历序列1:5(即 1、2、3、4、5)并逐次执行循环体。R 中的for可以遍历任意可迭代对象,例如字符向量、列表的索引等。由于向量化特性的存在,能用apply家族(lapplysapplyvapply)或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:62 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-2col-span-2wrap-textleft-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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询