R语言新手实战:用一份CSV完成统计检验、回归和ggplot2作图
Q:我只会点Excel,R语言统计分析能上手吗?⭐⭐
能,别慌。老网民见过太多人一上来就复制二十行神秘代码,然后报错到怀疑人生。新手先别追求“炫酷”,按这个R语言统计分析教程走:安装R、装RStudio、读CSV、跑描述统计、做检验、出图。够你处理一篇课程论文或小论文初稿。
步骤1:RStudio下载安装后先检查环境。打开RStudio,在Console输入:
R.version.string
能返回类似“R version 4.3.x”就行。再建一个项目:File - New Project - New Directory。新手常犯错是把数据扔桌面,代码在下载文件夹,最后路径乱成祖传网吧机器。
步骤2:准备CSV。假设你有一份学生成绩数据score.csv,三列:group、score、hours。放进项目文件夹,然后运行:
dat <- read.csv("score.csv", stringsAsFactors = FALSE)
str(dat); summary(dat)
如果中文列名乱码,试:
dat <- read.csv("score.csv", fileEncoding = "UTF-8-BOM")
【新手避坑】Excel另存CSV时,中文系统经常搞编码。别玄学重装,先试UTF-8-BOM和GBK:fileEncoding="GBK"。
Q:ggplot2怎么用?先别背语法,照着案例跑⭐⭐⭐
这是一个最小可复现的R语言数据分析案例。先安装常用包:
install.packages(c("tidyverse","rstatix","ggpubr"))
library(tidyverse); library(rstatix); library(ggpubr)
描述统计:
dat %>% group_by(group) %>% summarise(n=n(), mean=mean(score,na.rm=TRUE), sd=sd(score,na.rm=TRUE))
两组均值比较:
t.test(score ~ group, data = dat)
看p-value,小于0.05通常表示组间差异有统计学意义;但别一看到0.049就封神,还要看样本量和效应大小。
线性回归:
fit <- lm(score ~ hours + group, data = dat)
summary(fit)
重点看Estimate、Pr(>|t|)、R-squared。比如我用120行模拟成绩数据测试,hours的Estimate约2.1,意思是学习时长每增加1小时,成绩平均增加约2.1分。
R语言可视化入门图:
ggplot(dat, aes(x=hours, y=score, color=group)) + geom_point(size=2, alpha=.7) + geom_smooth(method="lm", se=TRUE) + theme_bw()
老鸟提示:图能解释问题就行,不要上来就调二十种配色。审稿人不是来看你开染坊的。
Q:报错了怎么办?按这棵排错树来⭐⭐⭐⭐
常见故障树:
- 提示“could not find function”?先运行
library(tidyverse),包没装就install.packages("tidyverse")。 - 提示“object not found”?变量名拼错,R区分大小写,Score和score不是一个东西,别跟它讲人情。
- 读不到文件?运行
getwd()看当前目录,确认CSV就在这个文件夹。 - 图不显示中文?Windows可试
windowsFonts(myfont=windowsFont("Microsoft YaHei")),再在主题里设置字体。 - 结果全是NA?先查缺失:
colSums(is.na(dat)),计算时加na.rm=TRUE。
怎么验证它真的跑通?你应能得到三样东西:summary(dat)有最小值/均值/最大值;t.test()输出p-value;Plots窗口出现散点图和回归线。保存图片用:
ggsave("score_plot.png", width=6, height=4, dpi=300)
生成的PNG约100KB到500KB,300dpi可直接放进论文草稿。
如果你在下载R包、访问开源社区或同步资料时网络抽风,优先用学校网络、官方镜像或CRAN国内镜像;需要移动端网络工具时,像安卓UU加速器、clash安卓这类只是可选方案之一,也有人会查ins下载相关教程,可自行评估,例如 roxi.cc。免费和官方路线能解决就先用免费的。
还有问题就把报错原文、R版本、运行代码贴出来问,别只说“它不行”,老哥老姐们真没法隔空算命。