R 语言 · 深度入门手册
分类:编程语言 | 难度:★★☆ 进阶 | 编号:
rlang
一、这是什么(一句话用途)
统计分析与可视化的专业语言,假设检验、回归、绘图(ggplot2)极强。
二、核心定位
向量化统计语言 + 海量 CRAN 包,tidyverse 工作流做数据整理,ggplot2 做出版级图。
三、核心原理剖析
R 是为统计而生的一门语言:它的基本数据结构向量(vector)直接对应统计量,整个表达式求值天然向量化(对整列数据一次性运算),这让统计公式能"照着数学写"。其生态核心是 CRAN 上的上万个扩展包,覆盖从基础检验到前沿机器学习。ggplot2 则把"图形语法(Grammar of Graphics)"落地为代码——把一张图拆成数据、几何对象、标度、坐标系、分面等图层,像搭积木一样组合,从而能精确、可复现地生产出版级可视化。R 的短板是工程化(性能、部署)弱于通用语言,但它做"数据探索—统计建模—画图"这一段无可替代。
四、底层机制与推导
ggplot2 的图形语法:一张图被建模为
其中映射 把数据变量绑定到图形美学属性,geom(如 point/line/bar)决定几何标记,scale 控制变量到美学的转换(如数值→颜色梯度)。图层可叠加:ggplot(df,aes(x,y))+geom_point()+geom_smooth()。底层 ggplot2 把数据→一个"图形原语"表格(每个观测一行、每美学一列),再由 grid 图形系统渲染——这种"数据→原语"的范式使分面(facet)只是按变量切分数据再各自画图,逻辑一致。
向量化统计:R 的多数运算是"循环隐式化"的——y ~ x1 + x2 这类公式对象会被 model.matrix() 解析成设计矩阵 ,再交给底层 lm.fit(X, y) 用 QR 分解求 。
五、上手步骤
- 装 R + RStudio
- 学向量/数据框(data.frame)
- 用 dplyr 做数据变换
- 用 ggplot2 绘图
- 用 lm/glm 等做统计建模
六、关键命令 / 语法 / 界面要点
library(ggplot2); library(dplyr)
df %>% filter(x>0) %>% summarise(m=mean(y))
ggplot(df,aes(x,y))+geom_point()+geom_smooth()
lm(y~x1+x2, data=df) # 线性回归
七、最小可跑示例
df<-data.frame(x=1:10,y=rnorm(10)); plot(df); summary(lm(y~x,df)) 看回归系数与 p 值。
八、学习资源 / 去哪学
RStudio 官方 IDE;CRAN 包库;推荐《R for Data Science》;ggplot2 文档。
九、常见坑(避坑清单)
- <-, = 赋值混用易错
- 向量化优先,少用 for
- 包要先 install.packages 再 library
- 中文乱码设 locale/UTF-8
十、怎么算用好了
summary() 看统计量;ggplot 图层叠加;p 值 < 0.05 显著。
十一、能跑哪些建模算法
可跑:回归、聚类、时间序列、假设检验、统计建模。
本手册由「工具入门手册生成器」自动产出(深度版),与算法深度手册同套体系。
实战案例
R 语言数据可视化实战
场景:有 150 条鸢尾花数据,需探索花萼长与花宽的关系并按品种着色。
任务:用 base R 绘制散点图并加线性回归线。
完整代码(r)
# 载入数据
data(iris)
# 散点图:Species 着色
plot(iris$Sepal.Length, iris$Sepal.Width,
col = iris$Species, pch = 19,
xlab = "Sepal Length", ylab = "Sepal Width",
main = "Iris 花萼散点图")
# 按品种拟合回归线
by(iris, iris$Species, function(d){
abline(lm(Sepal.Width ~ Sepal.Length, data = d), col = d$Species[1])
})
# 图例
legend("topright", levels(iris$Species), col = 1:3, pch = 19)
运行效果
| 品种 | 回归斜率 | 相关性 |
|---|---|---|
| setosa | +0.80 | 强正 |
| versicolor | -0.36 | 弱负 |
| virginica | -0.10 | 几乎无 |
| 图例清晰区分三品种,setosa 花萼长宽强正相关。 |