R: 认识 R 语言:什么是 R 统计编程语言
R 是世界上最流行的统计计算与图形语言——它让数据分析和可视化变得简单而专业。
本教程面向零基础学习者,从"什么是 R"讲起,直到你能用 R 完成完整的数据分析项目。R 在学术研究、数据科学、统计建模领域是事实标准,全球有 250 万+ 数据科学家在使用它。
1. 你将学到
- R 是什么,它能做什么
- R 与 Python 的差异和适用场景
- R 的诞生历史和设计哲学
- 在 Windows/macOS/Linux 上安装 R
- 安装并使用 RStudio IDE
- 编写并运行第一个 R 脚本
- R 的包生态(CRAN 和 tidyverse)
2. 一个数据分析师的真实故事
(1) 痛苦:Excel 撑不住了
Alice是一名市场分析师,最近接到一个紧急任务:
"把去年 12 个月的 @,000 rows of销售数据,做成一份6 张不同维度的趋势报告,明天早上manager要看。"
他打开 Excel 准备开工,结果发现:
- @,000 rows of数据 Excel 打开就要 5 分钟
- 想画 6 张不同维度的图,反复复制粘贴 + 透视表要花 3 小时
- 想算"按地区、按月份、按产品"三维度汇总,要写3 层嵌套 VLOOKUP
- 中途 Excel 崩溃 2 次,他差点把电脑砸了
他最后是怎么完成的?他转用了 R。
(2) R 的解法
同样的任务,Alice在 R 里这样写:
# 一行代码加载整个数据分析工具集
library(tidyverse)
# 一行代码读入 @,000 rows of数据(5 秒完成)
sales <- read_csv("sales_2024.csv")
# 一行代码画 6 张图
sales |>
group_by(region, month) |>
summarise(total = sum(amount)) |>
ggplot(aes(x = month, y = total, color = region)) +
geom_line() +
facet_wrap(~ product) +
labs(title = "2024 年销售趋势(按地区/产品)")
总用时 5 分钟——读数据 5 秒,汇总 1 秒,画 6 张图 3 秒,剩下时间润色标题。
这就是 R 的魅力:用最少的代码完成最复杂的数据分析。它的设计哲学就是"让统计学家专注思考,而不是和工具斗争"。
3. 什么是 R?
R 是一门诞生于 1993 年的统计计算与图形编程语言,由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 设计。
(1) R 的三大定位
| 定位 | 说明 |
|---|---|
| 统计学家的工作台 | 内置 8,000+ 统计函数,覆盖描述统计、假设检验、回归、贝叶斯、时间序列等全部统计方法 |
| 数据科学家的画笔 | ggplot2 图表语法可一句话画出出版级图形,超越 Python matplotlib 默认风格 |
| 可重现研究的标准 | R Markdown 把代码、公式、图表、论文写在同一份文档里,期刊投稿标配 |
(2) R 的核心优势
- 统计方法最全:从基础 t 检验到前沿贝叶斯推断,R 都有现成的包
- 可视化领先:ggplot2 是数据可视化领域的标杆,被 Python/JS 大量借鉴
- 学术标准:90% 的统计、医学、经济学期刊论文使用 R
- 包生态丰富:CRAN 上有 20,000+ 经过同行评审的开源包
- 可重现性:R Markdown 让"代码 + 数据 + 论文"三位一体
4. R 与 Python 的差异
很多初学者会问:"我学 R 还是 Python?"答案是两个都学——但用途不同。
(1) 一图看懂定位差异
graph TB
subgraph 编程语言分工
A[R<br/>统计分析<br/>学术研究<br/>数据可视化]
B[Python<br/>Web 开发<br/>机器学习<br/>自动化工程]
C[SQL<br/>数据库查询]
D[JavaScript<br/>前端交互]
end
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#f0e1ff
style D fill:#e1ffe1
(2) 六维对比表
| 维度 | R | Python |
|---|---|---|
| 设计目标 | 统计学家专用 | 通用编程语言 |
| 强项领域 | 统计分析、数据可视化、学术研究 | Web、机器学习、自动化、通用工程 |
| 数据科学 | tidyverse 链式 + ggplot2 | pandas + matplotlib/sklearn |
| 学习曲线 | 函数式编程 + 统计概念 | 命令式编程 + 软件工程 |
| 包生态 | CRAN 20,000+ 统计包 | PyPI 400,000+ 通用包 |
| 输出物 | 数据报告(R Markdown) | 应用程序(Django/Flask) |
(3) 简单结论
- 做统计、画图、写论文 → 用 R
- 做产品、写网站、做 AI → 用 Python
- 做数据处理 → 两门都行,但 R 在数据科学领域更"地道"
5. R 的诞生
(1) 一个有故事的语言
R 不是凭空设计的,它有清晰的演进路径:
- 1976 年:贝尔实验室开发 S 语言(专为统计分析设计)
- 1993 年:Ross Ihaka 和 Robert Gentleman 在 S 的基础上设计了 R 语言
- 名字来源:取两位作者名字首字母(R oss + R obert),也向 S 语言致敬
- 2000 年:R 1.0 发布,标志 R 进入成熟期
- 2015 年:R 3.0 发布,性能大幅提升
- 2024 年:R 4.4.x(当前主流版本)
(2) 为什么 R 能活 30 年?
R 不是"完美"的语言(语法有怪癖,IDE 启动慢),但它能存活 30 年的原因是:
- 统计学家真正在用(不是"为了用而用")
- 包作者就是用户(遇到问题就写包,CRAN 成了"实战知识库")
- 学术圈建立了壁垒(期刊要求 R 代码可重现)
6. 安装 R(R 4.x 主程序)
R 是开源免费的,可以从 CRAN 官网 下载安装包。
(1) 各平台安装指引
| 平台 | 安装方式 | 备注 |
|---|---|---|
| Windows | 下载 R-4.x.x-win.exe,双击一路 Next |
选 64 位系统对应版本 |
| macOS Apple Silicon | 下载 R-4.x.x-arm64.pkg |
M1/M2/M3 芯片 |
| macOS Intel | 下载 R-4.x.x-x86_64.pkg |
旧款 Mac |
| Linux (Ubuntu/Debian) | 通过 CRAN 源 apt install |
见下方命令 |
| Linux (Fedora/CentOS) | 通过 EPEL 源 dnf install |
见 CRAN 官方文档 |
(2) Linux 安装命令
# Ubuntu/Debian 用户:在终端依次执行以下命令
sudo apt update -qq
sudo apt install --no-install-recommends software-properties-common dirmngr
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install -y r-base
(3) 验证安装
安装完成后,打开系统终端输入:
R --version
预期输出:
R version 4.4.1 (2024-06-14) -- "Race for Your Life"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu
看到 R 版本号就说明主程序安装成功。
R(大写)进入 R 交互式 REPL;输入 q() 退出 R。Windows 也可以从"开始菜单 → R"打开。
7. 安装 RStudio(推荐 IDE)
R 自带一个简陋的图形界面,但99% 的 R 用户都用 RStudio——它是 Posit 公司出品的 R 专用 IDE,全球 R 用户的标准工具。
(1) 下载 RStudio
访问 Posit 官网,下载免费版 RStudio Desktop(区分 Windows/macOS/Linux 三个版本,约 200MB)。
(2) RStudio 四窗格
第一次打开 RStudio,你会看到 4 个窗格:
graph TB
A["源编辑器<br/>Source Editor<br/>写 R 脚本和文档"]
B["控制台<br/>Console<br/>执行代码、显示结果"]
C["环境/历史<br/>Environment/History<br/>查看变量、历史命令"]
D["文件/图表/包/帮助<br/>Files/Plots/Packages/Help"]
A -- "Ctrl+Enter<br/>运行选中行" --> B
B -- "赋值产生" --> C
B -- "plot 画图" --> D
C -- "点变量名查看" --> D
style A fill:#fff3cd
style B fill:#d4edda
style C fill:#cce5ff
style D fill:#f8d7da
(3) 四窗格功能表
| 窗格 | 位置 | 主要用途 |
|---|---|---|
| 源编辑器 | 左上 | 写 .R 脚本、.Rmd 文档;Ctrl+Enter 发送到控制台 |
| 控制台 | 左下 | 交互执行 R 代码;显示输出和错误信息 |
| 环境/历史 | 右上 | 列出当前所有变量(数据框、函数等);命令历史 |
| 文件/图表/包/帮助 | 右下 | 浏览文件、查看绘图结果、安装/加载包、查函数帮助 |
Tools → Global Options → General → Appearance 可以切换 IDE 主题(如 Tomorrow Night Blue 暗色主题)。但保留英文菜单便于搜索报错信息时找到答案。
8. 第一个 R 脚本
现在我们写第一个 R 脚本,完整的工作流如下:
▶ 示例:Hello World + 简单计算
# ============================================
# 我的第一个 R 脚本
# 文件名:hello.R
# ============================================
# 1. 注释以 # 开头,不会被运行
# 2. 变量赋值用 <-
name <- "World"
# 3. 用 cat() 输出(cat = concatenate,拼接)
cat("Hello,", name, "!\n")
# 4. R 是计算器(直接输入算式)
1 + 1
2 * 3
sqrt(144) # 平方根 = 12
log(100) # 自然对数
# 5. 用变量做计算
pi_value <- 3.14159
radius <- 5
area <- pi_value * radius ^ 2
cat("半径为", radius, "的圆面积约等于", round(area, 2), "\n")
预期输出:
Hello, World !
[1] 2
[1] 6
[1] 12
[1] 4.60517
半径为 5 的圆面积约等于 78.54
(1) 操作步骤
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 在 RStudio 按 Ctrl+Shift+N |
新建 R 脚本 |
| 2 | 输入上面代码 | 完整复制粘贴 |
| 3 | Ctrl+S 保存为 hello.R |
选个文件夹 |
| 4 | 选中全部代码 | Ctrl+A |
| 5 | Ctrl+Enter |
发送到控制台运行 |
| 6 | 控制台查看输出 | 看到 "Hello, World !" |
cat() 比 print() 更灵活,可以拼接多个参数;\n 是换行符;<- 是 R 的赋值符号(小于号 + 连字符),下一步课会深入学。
9. R 的包生态
R 的最大优势是包(package)生态——20,000+ 个由全球统计学家贡献的开源包,覆盖几乎所有统计方法和数据科学场景。
(1) 包管理三件套
# 1. 安装包(从 CRAN 镜像下载,只需执行一次)
install.packages("dplyr")
# 2. 加载包(每次新会话都要加载一次)
library(dplyr)
# 3. 查看已安装包
installed.packages()[, "Package"]
(2) tidyverse:数据科学 R 的"五件套"
tidyverse 是 Hadley Wickham(ggplot2 作者)领导的"整洁派"包集合,是现代 R 数据科学的事实标准:
| 包 | 作用 | 典型函数 |
|---|---|---|
| dplyr | 数据处理 | filter() mutate() group_by() summarise() |
| ggplot2 | 出版级绘图 | ggplot() geom_point() geom_bar() |
| readr | 读写 CSV/TSV | read_csv() write_csv() |
| tidyr | 数据重塑 | pivot_longer() pivot_wider() |
| stringr | 字符串处理 | str_detect() str_replace() |
# 一次装 8 个核心包(dplyr/ggplot2/readr/tidyr/stringr/purrr/tibble/readxl)
install.packages("tidyverse")
❓ 常见问题
Tools → Global Options → Packages → CRAN mirror 切换到国内镜像(如清华 https://mirrors.tuna.tsinghua.edu.cn/CRAN/),速度会快 10 倍。Linux 用户配置 apt 源时也选国内镜像。📖 小节
- R 是 1993 年诞生的统计计算与图形语言,定位"统计学家的工作台 + 数据科学家的画笔 + 可重现研究的标准"
- R 与 Python 的核心差异:R 偏统计/学术/可视化,Python 偏工程/AI/通用开发
- 安装顺序:先装 R 主程序(从 CRAN 下载),再装 RStudio IDE(Posit 官网)
- RStudio 四窗格:源编辑器(左上)→ 控制台(左下)→ 环境/历史(右上)→ 文件/图表/包/帮助(右下)
- 第一个脚本:
<-赋值 +cat()输出 + 注释#开头 - tidyverse 5 件套(dplyr/ggplot2/readr/tidyr/stringr)是数据科学 R 的核心
📝 作业
-
基础题:访问 CRAN 官网,找到适用于你操作系统的最新 R 安装包,记录下当前最新版本号是多少。安装 R 主程序和 RStudio,截图保存 RStudio 的四窗格界面。
-
进阶题:在 RStudio 新建脚本,编写一个"自我介绍"程序:① 定义 3 个变量(姓名
name、年龄age、城市city);② 用cat()拼成一句话输出"我是 [姓名],今年 [年龄] 岁,来自 [城市]";③ 用#写 2-3 行注释解释代码。运行后截图保存控制台输出。 -
挑战题:调研你最感兴趣的一个 R 包(推荐:ggplot2 / dplyr / shiny / rmarkdown / forecast),用一段话(200 字左右)介绍它的作用、典型应用场景,以及一个真实使用案例(可在 RStudio 官网 或 CRAN Task Views 查找)。把你的调研结果写在文档里保存。