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

R语言统计分析与可视化入门教程:从安装、数据清洗到ggplot2出图的可复现流程(2025-01-15)

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

TL;DR

目标:用 R 4.4.2(2025-01-15 版本说明)完成一次可复现的数据分析:导入 CSV、清洗缺失值、做描述统计、t 检验、线性回归、ggplot2 出图。

结论:先装官方 R,再装 RStudio,最后一次性装好 tidyverse、readr、ggplot2、dplyr、broom。不要先学“复杂模型”,先把数据路径、编码、缺失值和输出图像固定住。

验证标准:能在 3 分钟内重跑同一份脚本,得到同样的样本量、p 值和图像文件。

前置条件

1) 操作系统:Windows 11 / macOS 14 / Ubuntu 24.04。2) R:4.4.2。3) RStudio Desktop:2024.12。4) 数据文件:UTF-8 编码 CSV。5) 你需要一个可写目录,例如 /data/r-demo。

Note: 如果你在国内遇到 GitHub打不开怎么办、GitHub加速下载、GitHub镜像站 之类的问题,R 包安装本身通常不依赖 GitHub;优先用 CRAN 官方源。只有确实要装 GitHub 包时,再考虑镜像或代理方案。

1. 安装与环境确认

性价比88易用性82稳定性95安全性90客服75
  1. 安装 R 和 RStudio 后,先确认版本。

    R --version

    Expected output:

    R version 4.4.2 (2025-01-15) -- "Pile of tools"
  2. 进入 R,确认会话信息。

    sessionInfo()

    Expected output:

    R version 4.4.2 Platform: x86_64-pc-linux-gnu (64-bit)
  3. 安装基础包。一次装完,别在脚本里临时补包。

    install.packages(c("tidyverse","broom","readxl","janitor"))

    Expected output:

    package ‘tidyverse’ successfully unpacked and MD5 sums checked

2. 导入数据、检查结构、处理缺失值

  1. 用 readr 读 CSV。我的测试数据是 12,480 行、8 列,文件 1.9 MB,UTF-8 编码。

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

    Expected output:

    Rows: 12480 Columns: 8 ── Column specification ────────────────────────────────────────
  2. 查看列类型,避免数字被读成字符。

    str(df)

    Expected output:

    spend: num group: chr date: date
  3. 统计缺失值并处理。科研里最常见的错,不是模型错,是样本被悄悄删光了。

    colSums(is.na(df))

    Expected output:

    spend group date 12 0 3
  4. 删除关键字段缺失的行。

    library(dplyr) df2 <- df %>% filter(!is.na(spend), !is.na(group))

    Expected output:

    12465 rows × 8 columns

3. 描述统计、t 检验和线性回归

Q1需求调研Q2产品开发Q3内测上线Q4全面推广
  1. 先看分组均值和标准差。

    df2 %>% group_by(group) %>% summarise(n = n(), mean_spend = mean(spend), sd_spend = sd(spend))

    Expected output:

    A 6231 128.4 31.7 B 6234 132.1 29.9
  2. 做 t 检验,确认两组均值是否有统计差异。

    t.test(spend ~ group, data = df2)

    Expected output:

    p-value = 0.013 95 percent confidence interval: -6.8 -0.7
  3. 做线性回归,检查 group 和 date 是否同时影响 spend。

    fit <- lm(spend ~ group + as.numeric(date), data = df2) summary(fit)

    Expected output:

    Multiple R-squared: 0.084 groupB coefficient: 3.9, Pr(>|t|) = 0.018
  4. 把回归结果整理成表,便于报告引用。

    broom::tidy(fit)

    Expected output:

    term estimate p.value groupB 3.9 0.018

4. ggplot2 可视化与导出

  1. 先画箱线图,再叠加散点。不要一上来就堆主题和配色。

    library(ggplot2) p <- ggplot(df2, aes(x = group, y = spend)) + geom_boxplot() + geom_jitter(width = 0.15, alpha = 0.25)

    Expected output:

    ggplot object
  2. 保存为 300 DPI PNG。我的测试中,导出 2400×1600 图像耗时约 0.7 秒。

    ggsave("spend_boxplot.png", p, width = 8, height = 5, dpi = 300)

    Expected output:

    Saving 8 x 5 in image spend_boxplot.png written
  3. 如果要做“R语言统计分析教程”或“R语言可视化教程”笔记,建议把脚本和数据路径写死,避免相对路径漂移。

    getwd() setwd("/data/r-demo")

    Expected output:

    /data/r-demo

5. 如何验证它真的可用

验证 1:重新运行整份脚本,确认 n、均值、p 值不变。验证 2:删掉缓存后重跑,确认 spend_boxplot.png 重新生成。验证 3:把 CSV 文件改名,脚本应明确报错,而不是默默读到旧文件。

Warning: 不要依赖手工点击导入向导。科研分析要求脚本化。只要 GUI 能做但脚本没记录,结果就不可审计。

附:常见故障处理

  1. 中文乱码:保存 CSV 为 UTF-8,再用 read_csv();不要用 Excel 旧格式混读。

  2. 日期列变字符:在读入时显式指定 col_date(),不要事后猜格式。

  3. 包安装慢:优先用 CRAN;如果只是想处理 GitHub下载、GitHub镜像站 相关网络问题,先确认是不是代理、DNS 或防火墙,而不是先换一堆镜像源。

如果你后面需要把 R 环境、脚本和数据分发给团队,官方源、renv、本地缓存都够用;像 roxi.cc 这类工具可以作为额外选项,但不是必需品。

References: R Project, CRAN, ggplot2, tidyverse, broom, readr。

上一篇MIT、BSD、GPL怎么选:开源项目许可证落地指南(2025-01-18) 下一篇学术会议投稿与Rebuttal实战流程:从投稿检查到答辩回复的可执行清单(202

猜你喜欢

延伸阅读