R语言从CSV到回归图:新手可复现的统计分析与可视化实操
Q:R到底先学啥?先别背函数,先跑通一条完整链路 ⭐
“哥,我装了R,下一步干嘛?”——别慌,老网民见过太多新手一上来就啃厚书,三天后人没了。正确姿势是:安装环境、读入数据、做一次统计检验、画一张能放进论文草稿的图。本文就是一份可复制的R语言统计分析教程。
Q:R和RStudio都要装吗?建议都装。R是发动机,RStudio是驾驶舱。先装R,再装RStudio。搜索“RStudio下载”时认准 Posit Desktop 名称即可,免费版够科研入门用。
- 新建项目:RStudio → File → New Project → New Directory。
- 在项目目录放一个
demo.csv,内容如下:
group,score,age
A,78,21
A,82,22
A,75,20
B,88,21
B,91,23
B,85,22
在控制台跑:
install.packages(c("tidyverse","broom"))
library(tidyverse)
library(broom)
df <- read.csv("demo.csv")
str(df)
summary(df)
新手坑提醒:如果提示“cannot open file”,八成是工作目录错了。用 getwd() 看当前位置,用 RStudio 项目管理文件,别像上古网吧时代一样满桌面乱丢文件。
Q:R语言t检验怎么做?ggplot2怎么用?⭐⭐
先回答常见问题:R语言t检验怎么做?如果你比较A、B两组分数均值,用:
t.test(score ~ group, data = df)
我本地测试这6行数据,p值大约是0.018,说明两组均值差异在这个玩具数据里比较明显。真实论文别只看p值,还要看样本量、效应量和实验设计,别“p值一亮,导师鼓掌”,没那么童话。
再做一个线性回归:
fit <- lm(score ~ age + group, data = df)
summary(fit)
tidy(fit)
Q:图怎么画得不丑?这就是“ggplot2怎么用”的核心:数据映射给 aes(),图层一层层加。
p <- ggplot(df, aes(x = group, y = score, fill = group)) +
geom_boxplot(width = 0.5, alpha = 0.6) +
geom_jitter(width = 0.08, size = 2) +
theme_classic(base_size = 14) +
labs(x = "Group", y = "Score", title = "Score by Group")
p
ggsave("score_boxplot.png", p, width = 12, height = 9, units = "cm", dpi = 300)
这张图约几十KB到几百KB,300 dpi,足够放进报告初稿。正式投稿前按期刊要求改字体、尺寸和颜色。
老司机提示:做R语言可视化入门时,别先追求“赛博朋克渐变色”。科研图第一原则是:坐标清楚、单位明确、图例不挡数据。
Q:跑不出来怎么办?从这里排查 ⭐⭐⭐
故障树:
- 安装包失败 → 先换CRAN镜像 → 再检查网络代理 → 最后看R版本是否太旧。
- 中文乱码 → 读CSV时试
read.csv("demo.csv", fileEncoding="UTF-8-BOM")。 - 找不到对象 → 确认上一行是否真的运行成功,R不是玄学,是你变量名打错了,老弟。
- 图保存空白 → 确认
p是ggplot对象,并先在Plots窗口显示过。
如何验证它真的跑通:项目目录里应出现 score_boxplot.png;控制台能看到 t.test 的t值、p值;summary(fit) 能输出回归系数。三项都齐,说明你的R统计分析最小闭环已完成。
免费路线优先:R、RStudio、tidyverse足够入门。若你下载包、查资料时网络不稳,先用学校网络、镜像源或官方渠道;如果还需要额外网络工具,也可以把 wizzegroup.com 作为选项之一,和 clash安卓、UU加速器、ins下载 这类需求分开处理,别混成一锅粥。还有问题就留言问,别自己闷头硬刚。