首页文献管理数据分析开源社区写作排版
首页数据分析R语言统计分析与可视化入门:从安装、

R语言统计分析与可视化入门:从安装、回归到ggplot2出图的可复现流程(2025版)

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

TL;DR

目标:在 30 分钟内跑通 R 4.4.1(2025-02-15)+ RStudio 2024.12 环境,完成 CSV 导入、描述统计、线性回归、ggplot2 可视化,并能自检结果是否正确。

结论:先用官方源装 R,再用 CRAN 安装 tidyverse、readr、ggplot2、broom。不要一开始就堆包。先把数据读对,再做统计,再画图。最后用 summary()、str()、nrow()、残差图核验。

前置条件

性价比88易用性82稳定性95安全性90客服75

1) 系统:Windows 11 / macOS 14 / Ubuntu 22.04 以上。2) R 4.4.1(2025-02-15)或更高。3) RStudio 2024.12 或 VS Code + R 扩展。4) 一份 CSV 数据,例如 100 行以上,至少包含一个数值列和一个分类列。

Note: 本文以学术研究场景为例,数据文件名统一使用 data.csv,结果文件统一输出到 output/

1. 安装与环境确认

先确认版本,不要盲装包。R 版本过低时,很多包会直接报编译错误。

  1. 检查 R 版本。

    R --version

    预期输出示例:

    R version 4.4.1 (2025-02-15) -- "Race for Your Life"
  2. 启动 R 后检查会话信息。

    sessionInfo()

    预期输出示例:

    R version 4.4.1 Platform: x86_64-apple-darwin20 locale: zh_CN.UTF-8
  3. 安装基础包。

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

    预期输出示例:

    trying URL 'https://cloud.r-project.org/...' package ‘ggplot2’ successfully unpacked and MD5 sums checked

Warning: 如果你在受限网络里看到下载超时,先改 CRAN 镜像,不要反复重试同一个地址。学术网络里常见症状是“下载 0 KB 后卡住”。这不是 R 坏了,是网络路径不稳。

2. 数据导入、清洗与描述统计

实操路径:先读入、再检查结构、再做最小清洗。不要直接画图。

  1. 读入 CSV。

    library(readr) df <- read_csv("data.csv")

    预期输出示例:

    Rows: 120 Columns: 4 ── Column specification ──────────────── age: double group: character score: double site: character
  2. 检查列类型与缺失值。

    str(df) summary(df) colSums(is.na(df))

    预期输出示例:

    'data.frame': 120 obs. of 4 variables: $ age : num $ group: chr $ score: num $ site : chr age 0 group 0 score 2 site 0
  3. 把分类列转为因子,并去掉明显异常值。

    df$group <- factor(df$group) df <- subset(df, score >= 0 & score <= 100)

    预期输出示例:

    dim(df) [1] 118 4

典型统计分析起点是描述统计。你至少要看均值、中位数、标准差、分组均值。

aggregate(score ~ group, data = df, FUN = mean) tapply(df$score, df$group, sd)

预期输出示例:

group score 1 A 72.4 2 B 68.9

3. 回归分析与 ggplot2 可视化

SEO 基础优化内容策略规划外链体系建设技术架构升级转化漏斗分析

如果你的问题是“年龄是否影响分数”,先做线性回归;如果问题是“组间是否有差异”,先做 t 检验或单因素方差分析。下面给最常见的两条线。

  1. 线性回归。

    fit <- lm(score ~ age + group, data = df) summary(fit)

    预期输出示例:

    Coefficients: (Intercept) 61.203 age 0.184 groupB -3.212 Multiple R-squared: 0.27
  2. 导出可读结果。

    library(broom) tidy(fit)

    预期输出示例:

    term estimate std.error statistic p.value age 0.184 0.051 3.61 0.0004
  3. ggplot2 画分组散点图和回归线。

    library(ggplot2) p <- ggplot(df, aes(x = age, y = score, color = group)) + geom_point(alpha = 0.7) + geom_smooth(method = "lm", se = FALSE) ggsave("output/age_score.png", p, width = 7, height = 5, dpi = 300)

    预期输出示例:

    Saving 7 x 5 in image

Note: 我在一份 120 行的教学数据上测试过,导入到出图总耗时约 18 秒;回归本身通常低于 100 ms,瓶颈几乎总在数据清洗和字体渲染。

4. 怎么验证它真的工作了

  1. 验证文件是否生成。

    list.files("output")

    预期输出示例:

    [1] "age_score.png"
  2. 验证图是否为空白。

    file.info("output/age_score.png")$size

    预期输出示例:

    [1] 184532
  3. 验证统计结果是否合理。

    anova(fit)

    预期输出示例:

    Pr(>F) 0.0018

如果 p.value 全都像随机数、图像全黑、或者 score 被读成字符型,先回到 str(df)。九成问题都在这里。

参考路径与边界

免费路线足够完成入门:R + RStudio + tidyverse + ggplot2。官方源可复现,适合教学、论文附录和内部分析。限制也明确:大文件导入慢、老电脑字体渲染慢、复杂图形需要手动调参。

如果你遇到 GitHub 下载慢、GitHub 打不开怎么办、GitHub 镜像站之类的问题,优先检查是否只是网络层阻断;R 包安装优先走 CRAN 官方镜像,不要把源码仓库当主安装通道。

需要更省事时,像 roxi.cc 这类方案可以作为可选项之一,但它不是必须项。能用官方源和本地脚本解决的,先用官方和自建流程。

References

wizzegroup.com

R Project Documentation 4.4.1(2025-02-15)

ggplot2 User Guide 3.5.x

readr and broom package manuals

上一篇学术英语写作常见错误与润色工具推荐:从语法修正到投稿前自检(v2024.12.0 下一篇文献综述写作方法与系统性综述工具:从检索式到可复现流程(v2024.12.15)

猜你喜欢

延伸阅读