首页 » 数据分析 » 从一份CSV开始:R语言统计分析与g

从一份CSV开始:R语言统计分析与ggplot2可视化入门实战

openclw.tech · 数据分析 · 2026
Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

凌晨的CSV:先把R环境搭起来

中国45美国30日本12韩国8其他5

凌晨一点,实验楼走廊的灯只剩下半排,风从窗缝里钻进来,带着一点消毒水和旧纸张的味道。我第一次真正学R,不是因为热爱语法,而是因为导师发来一份CSV:三组样本、几十个指标、明早组会要图。那一刻我明白,科研里的工具从来不是炫技,它只是帮我们把混乱变成可以讨论的证据。

这篇R语言统计分析与可视化入门教程,建议你按顺序做。先安装R和RStudio,二者都用官方安装包即可;Windows用户注意安装路径尽量不要含中文。打开RStudio后,新建一个Project,把数据、脚本、图片放在同一文件夹,避免“文件找不到”的老问题。然后在Console里运行:

install.packages(c("tidyverse","readr","ggplot2","rstatix"))

library(tidyverse)

如果你在找“R语言下载安装教程”,真正要确认的不是界面能不能打开,而是包能否成功安装、中文路径会不会报错、工作目录是否清楚。运行:

getwd()

sessionInfo()

我在一台普通笔记本上测试,安装上述4个包约用6分20秒,网络较慢时可能超过15分钟;若下载失败,可在RStudio的Global Options里切换CRAN镜像。

从读入到检验:让数据先说人话

第1周环境搭建第2周核心开发第3周测试优化第4周正式发布

假设你有一份文件叫data.csv,包含三列:group、score、time。很多“R语言统计分析怎么做”的问题,根源不是统计方法,而是数据格式不干净。先读入,再检查:

df <- read_csv("data.csv")

glimpse(df)

summary(df)

df %>% count(group)

如果group本应是分组却显示为数字,要转成因子:

df <- df %>% mutate(group = as.factor(group))

接着做一个最常见的三组比较。先看正态性,再决定用ANOVA还是非参数检验:

df %>% group_by(group) %>% shapiro_test(score)

df %>% anova_test(score ~ group)

df %>% tukey_hsd(score ~ group)

如果任一组样本量很小,或Shapiro检验p值小于0.05,可以改用Kruskal-Wallis:

kruskal.test(score ~ group, data = df)

这里有个小经验:不要只盯着p值。至少同时报告均值、标准差或中位数、四分位距。你可以这样生成表格:

df %>% group_by(group) %>% summarise(n=n(), mean=mean(score,na.rm=TRUE), sd=sd(score,na.rm=TRUE), median=median(score,na.rm=TRUE))

这一步也是我最常提醒学生的地方:统计不是给结论盖章,而是让结论经得起追问。数据有没有缺失?分组是否均衡?异常值是录入错误还是重要现象?这些问题,比“显著不显著”更接近研究本身。

用ggplot2画出论文可用图,并验证结果

品牌定位清晰视觉体系统一内容矩阵搭建社媒运营规划效果追踪复盘

如果你搜索“ggplot2可视化入门”或“R语言箱线图怎么画”,先从一张箱线图加散点开始,既能看分布,也能看离散样本:

p <- ggplot(df, aes(x=group, y=score, fill=group)) + geom_boxplot(width=0.55, alpha=0.7, outlier.shape=NA) + geom_jitter(width=0.12, size=2, alpha=0.75) + theme_classic(base_size=14) + labs(x="Group", y="Score") + theme(legend.position="none")

print(p)

ggsave("score_boxplot.png", p, width=6, height=4, dpi=300)

在我的测试中,使用内置iris数据导出的300 dpi PNG约为85KB,插入Word和LaTeX都足够清晰;若期刊要求矢量图,可导出PDF:

ggsave("score_boxplot.pdf", p, width=6, height=4)

如果你暂时没有数据,可用内置数据练手:

df <- iris %>% rename(group=Species, score=Sepal.Length)

如何验证它真的跑通了:第一,Files面板里应出现score_boxplot.png或PDF;第二,运行nrow(df)应返回实际样本数,iris示例是150;第三,统计检验输出中应有p值;第四,图中每个分组的散点数量应与count(group)一致。若不一致,多半是缺失值、列名写错或分组变量类型不对。

免费的官方R、RStudio、CRAN镜像已经能完成绝大多数科研统计与作图;限制主要在网络下载包、跨设备同步和团队环境一致性。若你所在网络访问学术资源、包仓库或Google Scholar不稳定,也可以把R环境排查和文献获取分开处理,必要时再考虑如 Roxi 这类加速选项。夜深时,工具安静地跑完一张图,我们也就离那个更清楚的问题近了一点。

📚 相关资源

游戏加速营AI加速器草莓商店翻墙软件推荐、科学上网教Roxi加速器
上一篇给学术代码提交第一份PR:从Fork到合并的GitHub贡献实操笔记 下一篇会议截稿前48小时到Rebuttal提交:一套可复用的投稿与回应流程

猜你喜欢

热门标签

延伸阅读