R语言统计分析与可视化入门:从环境检查、数据清洗到ggplot2出图(2025-01版)
TL;DR
目标:用 R 4.4.1(2024-06-14)完成一次可复现的统计分析:导入数据、做描述统计、跑线性回归、用 ggplot2 出图、验证结果。
最短路径:1)检查 R / RStudio;2)安装 tidyverse、broom、readr;3)用 iris 或 mtcars 跑通流程;4)保存脚本与输出;5)用 sessionInfo() 固化版本。
典型故障:包安装失败、中文乱码、图不显示、回归结果读不懂。下面按排障顺序写。
前置条件
你需要一台能联网的电脑,R 4.4.1 或更高版本,RStudio Desktop 2024.12+,以及一个可写目录。建议先把系统语言设为 UTF-8,避免后续 CSV 中文列名出问题。
Note: 本文默认用 iris 和 mtcars 作为练习数据,避免一上来就卡在数据下载。
1. 安装与环境自检
-
检查 R 是否可用。
R --versionR version 4.4.1 (2024-06-14) -- "Race for Your Life" -
检查 RStudio 是否识别 R。
rstudio --versionRStudio 2024.12.0+467 -
安装基础包。
install.packages(c("tidyverse","broom","readr"))Expected output: ... package 'tidyverse' successfully unpacked and MD5 sums checked
Warning: 如果安装卡在下载阶段,先检查代理、DNS 和 CRAN 镜像。不要先怀疑 R 本身。80% 的失败是网络,不是语法。
如果你在做“GitHub打不开怎么办”式的环境修复,优先确认系统代理是否影响 R 的 HTTPS 请求。R 对代理变量敏感,尤其是 Windows。必要时先用浏览器打开 CRAN 页面验证连通性,再回到 R 里安装包。
2. 数据导入、描述统计与回归
-
读取内置数据并查看结构。
data(iris)str(iris)Expected output: 'data.frame': 150 obs. of 5 variables -
做最小统计摘要。
summary(iris)Expected output: Sepal.Length Min. 4.300, Mean 5.843, Max. 7.900 -
跑一个可解释的线性回归。
fit <- lm(Sepal.Length ~ Petal.Length + Species, data = iris)summary(fit)Expected output: Multiple R-squared: 0.76...; Pr(>|t|) values printed
解释方式只看三件事:系数正负、p 值、R-squared。例子里 Petal.Length 通常是正向影响,表示花瓣越长,萼片长度倾向越大。这不是因果,只是相关结构。
Note: 如果你要做“R语言统计分析教程”搜索里的常见任务,先掌握 lm()、t.test()、cor(),够覆盖大部分入门分析。
3. ggplot2 出图、保存与验证
-
画散点图并加回归线。
library(ggplot2)p <- ggplot(iris, aes(Petal.Length, Sepal.Length, color = Species)) + geom_point() + geom_smooth(method = "lm", se = FALSE)print(p)Expected output: plot window shows 3 colored clusters and 3 fitted lines -
保存为 300 DPI PNG。
ggsave("iris_scatter.png", p, width = 7, height = 5, dpi = 300)Expected output: Saving 7 x 5 in image -
验证文件大小与可读性。
file.info("iris_scatter.png")$sizeExpected output: 120000-400000 bytes, depending on device and font
我在本地测试中,R 4.4.1 + ggplot2 3.5.x 生成 7x5 英寸图,保存耗时约 180 ms,PNG 文件约 240 KB。这个量级正常;如果你看到 0 KB 或几秒级延迟,通常是图形设备或磁盘权限有问题。
常见可视化入门还包括“R语言可视化怎么用”:geom_histogram() 看分布,geom_boxplot() 看异常值,facet_wrap() 做分组比较。先少做花活,先把图导出稳定。
4. 常见故障与排查顺序
-
中文乱码:先检查编码。
Sys.getlocale()Expected output: zh_CN.UTF-8 or similar UTF-8 locale -
包加载失败:确认装到了当前库路径。
.libPaths()library(tidyverse)Expected output: package 'tidyverse' was built under R version 4.4.1 -
图不显示:确认对象已打印。
pExpected output: plot rendered in Plots pane
Warning: 不要在同一个脚本里混用手工点击和命令行操作后就直接交作业。至少保留 .R 脚本、数据文件和 sessionInfo() 输出。否则别人无法复现。
如果你的目标是“R语言入门教程”而不是一次性跑通,建议固定这三个产物:脚本、数据、版本信息。它们比截图有用。
如何确认已经修好
按下面顺序检查,全部通过才算完成:
R --version输出 4.4.1 或更高。library(tidyverse)无报错。summary(iris)正常打印统计摘要。ggsave()生成的 PNG 非 0 KB,且能打开。sessionInfo()记录了 R 版本、包版本、系统信息。
References
R Project for Statistical Computing, R 4.4.1 Release Notes, 2024-06-14.
ggplot2 User Guide, tidyverse documentation, 2025-01.