For the complete documentation index, see llms.txt. This page is also available as Markdown.

38.5 R 语言

R 是一款面向统计计算与图形可视化的编程语言与自由软件环境,由奥克兰大学统计系的 Ross Ihaka 与 Robert Gentleman 于 1993 年发布,现由 R 核心团队(R Core Team)维护。

其名称既是两位作者名字首字母的组合,也是对贝尔实验室 S 语言(S programming language)的继承:R 语言来自 S 语言,是 S 语言的开源(GPL)衍生,绝大多数为 S 编写的代码不经修改即可在 R 中运行。

R 在统计学、数据科学、生物信息学、计量经济学与社会科学等领域被广泛使用,其生态系统中包含数以万计的扩展包(packages),这些包通过综合 R 存档网络(Comprehensive R Archive Network,CRAN)发布。

FreeBSD 的 Ports 与 pkg 均提供 R 的安装方式。在 Ports 中,R 语言包位于 math/R 分类下。

安装 R 语言

使用 pkg 安装:

# pkg install R

或者使用 Ports 安装:

# cd /usr/ports/math/R/
# make install clean

安装完成后,可通过以下命令验证版本:

$ R --version
R version 4.6.0 (2026-04-24) -- "Because it was There"
Copyright (C) 2026 The R Foundation for Statistical Computing
Platform: amd64-portbld-freebsd16.0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.

进入交互式会话:

在交互式会话中,使用 q() 退出。

CRAN 镜像与包管理

CRAN 是 R 扩展包的官方发行网络,全球设有数十个镜像站点。首次使用 install.packages() 时,R 会提示用户选择镜像。可通过以下方式在 R 会话中显式指定镜像(以清华大学 TUNA 镜像为例):

技巧

由于构建 R 包并不轻松(类似于 Python),因此 FreeBSD Port 开发者维护了大量 R 包,并且他们大多命名为 R-cran-*。以 ggplot2 为例,在 Ports 中为 graphics/R-cran-ggplot2

也可以在用户主目录下创建 ~/.Rprofile 配置文件,使镜像设置在每次启动 R 时自动生效:

常用的包管理命令包括:

基本使用示例

以下示例演示 R 的基本算术运算、向量操作与简单绘图功能。启动 R 并依次执行。请读者先行安装 Port graphics/R-cran-ggplot2

基本算术运算:

向量运算:

简单的线性回归

绘制散点图与回归线

将输出下图:

散点图与回归线

RStudio IDE

RStudio 是最流行的 R 集成开发环境(IDE)之一。它提供语法高亮、代码补全、绘图查看器、数据浏览器以及版本控制等功能。

使用 pkg 安装 RStudio 客户端(服务器为 RStudio-server):

或者使用 Ports 安装:

安装完成后,在桌面环境中通过应用程序菜单启动 RStudio,或在终端中运行:

数据导入与导出

R 支持多种数据格式的读写。常见示例如下:

统计建模与图形可视化

以下示例演示线性模型与 ggplot2 绘图的常见用法:

将输出下图:

散点图与拟合曲线

常用包推荐

分类
包名/Port
用途

数据处理

dplyr(databases/R-cran-dtplyr)、tidyr(devel/R-cran-tidyr)、data.table(devel/R-cran-data.table

数据清洗、筛选、变形与汇总

图形可视化

ggplot2(graphics/R-cran-ggplot2

静态与交互式绘图

时间序列

tseries(finance/R-cran-tseries

时间序列建模与预测

机器学习

caret(devel/R-cran-caret

分类与回归模型训练

并行计算

future(devel/R-cran-future)、doParallel(devel/R-cran-doParallel

多核与分布式计算

与其他语言的互操作

R 可以与多种编程语言互操作。以下是常见场景:

调用 C/C++ 代码

通过 Rcpp 包(Port devel/R-cran-Rcpp)可在 R 中直接嵌入 C++ 代码:

在 R 中调用 Python 代码

通过 reticulate 包可在 R 会话中调用 Python:

在 Python 中调用 R

通过 Python 的 rpy2math/py-rpy2)包可在 Python 中调用 R:

Ctrl + D 可以退出上述界面。

命令行批处理模式

R 支持批处理运行脚本。新建脚本 analysis.R,写入以下内容:

在终端中执行:

该模式适用于将 R 整合进 Shell 脚本、定时任务或批处理工作流。

故障排除

扩展包编译失败

部分扩展包需要调用 C/C++/Fortran 编译器。请确保系统已安装 devel/gmakelang/gcc(含 gfortran)以及相关依赖。可使用以下命令一次性安装常用编译工具链:

中文显示乱码

请先按照其他章节正确设置 LANGLC_ALL 等本地化环境变量。在 R 中可额外设置:

图形设备无法启动

在无图形界面的服务器环境中,需要将绘图输出到文件设备(png、pdf、svg 等):

查看该图:

示例图片

参考资料

  • R CORE TEAM. R: The R Project for Statistical Computing[EB/OL]. [2026-06-09]. https://www.r-project.org/. R 官方网站

  • COMPREHENSIVE R ARCHIVE NETWORK. CRAN mirrors[EB/OL]. [2026-06-09]. https://cran.r-project.org/mirrors.html. CRAN 镜像列表

  • R CORE TEAM. An Introduction to R[EB/OL]. [2026-06-09]. https://cran.r-project.org/manuals.html. R 导论。

  • Wickham H, Çetinkaya-Rundel M, Grolemund G. R数据科学(第2版):R for Data Science: Import, Tidy, Transform, Visualize, and Model Data[M]. 张敬信, 王小宁, 黄俊文, 译. 北京: 人民邮电出版社, 2025. ISBN: 978-7-115-68264-2.

最后更新于