拓冰建站拓冰建站
首页 / 资讯中心 / 正文

R语言期末知识点汇总:环境配置、数据分析与统计建模复习清单

简介这是一份面向K12信息技术课程与高校计算机科学入门学习者的R语言期末复习资料以知识点汇总文档形式整理帮助读者在考前快速梳理语法要点与常考操作适合刚接触数据分析编程、需要系统串讲基础内容的初学者。压缩包内仅含1个docx文件约157KB体量轻便便于打印或导入平板随查随看。内容按数据结构、操作与访问、绘图与图形参数、帮助与历史、脚本与函数等模块展开向量、矩阵、数组与数据框的创建与索引方式因子的levels排序工作目录与对象管理函数plot()与par()的绘图参数调整以及col、lty、lwd、cex、font等图形细节设置均有收录并标注X[i,]、X[i,j]等易混写法与matrix()的byrow填充规则。目前已有198人学习适合需要背记函数清单、对照查漏补缺的读者使用。1. R 语言期末知识点汇总.docx 该汇总什么一份能跑通、能复现的复习清单期末前一周大多数人手头是同一堆东西老师给的六个 PPT、几段跑不通的示例代码、一个不知道哪年版本的 R 安装包。真正卡住人的从来不是「r语言新手入门有哪些必学基础」这类问题而是把散落的知识点收成一份可执行的清单——每一条都对应一段能在自己机器上跑通的代码每一个概念都指向一道具体的考法。这份汇总的边界要划清楚不追求把 R 的语法收完只覆盖期末高频的向量与数据结构、数据框操作、统计建模、图形四块并在每块后面挂上可复现的最小例子。它既适合正在准备考试的人也适合隔了半年要重新捡起 r语言数据分析案例 的从业者——后者往往更需要一份「跑得起来」的对照表而不是一份教科书目录。下面按环境、数据结构、数据框、建模、成稿五个层次推进每一层的代码都可以直接粘进控制台执行。2. 先把环境跑起来r语言安装教程与 vscode 配置 R 语言环境2.1 r语言官网下载与安装包版本选择r语言官网网址直接搜 CRAN 就能到多数人卡在镜像列表页。镜像按地区分组选延迟低的那个即可安装包本身没有区别。Windows 下面会看到 base 和 Rtools 两类内容期末复习只装 base 里的 R for WindowsRtools 是编译源码包用的不装不影响。安装路径不要带中文和空格Windows 用户名含中文时把库路径改到英文目录否则install.packages()会在解压阶段报权限错误。装完用一段命令确认结果# 查看 R 版本与架构上机前先跑一遍 R --version # 查看库路径确认没有中文 Rscript -e .libPaths()R --version同时输出版本号和平台架构写复习资料时把这个版本记下来forecast、QCA这类包跨版本行为会变。.libPaths()的第一项是用户库位置如果输出里出现中文路径在~/.Renviron里加一行R_LIBS_USER你的英文路径就能改掉比重新安装省事。2.2 vscode 配置 R 语言环境三个必须改的参数RStudio 是期末上机最常见的环境日常写代码的人更愿意待在 vscode 里。让 vscode 真正跑起 R核心是 R 扩展加上一个终端解释器。装好 R extension for Visual Studio Code 后在settings.json里改这几项// settings.jsonvscode 跑 R 的最小配置 { // 指向 R 可执行文件Windows 下用正斜杠或双反斜杠 r.rpath.windows: C:/Program Files/R/R-4.4.1/bin/R.exe, r.rterm.windows: C:/Users/you/AppData/Local/Programs/Python/Python311/Scripts/radian.exe, r.bracketedPaste: true, r.sessionWatcher: true }r.rpath.windows决定扩展去哪找解释器写错的话状态栏会一直停在 loading不会给出明确报错。r.rterm.windows用 radian 替代原生 R 终端换来语法高亮和多行编辑不装 radian 就把这行删掉扩展会退回原生终端代价是没有高亮。r.bracketedPaste开启后粘贴多行代码不会卡在提示符处这个坑在上机时极常见。r.sessionWatcher让编辑器的工作目录跟着 R 会话走。顺带说一句Positron 如何运行 r语言 也是最近被问得多的装好 Posit 的新 IDE在解释器下拉里选本地 R 版本即可配置项和 vscode 基本兼容换环境不用重新学一套。期末上机不支持装它知道有这条路就行。2.3 期末第一道题常考的数据类型与向量运算环境通了第一块复习内容一定是数据结构。真正被反复考的不是复杂结构是NA、NULL、NaN三者的区别以及向量化的回收规则。值长度参与运算判据NA1结果仍是 NAis.na()NULL0被整个忽略is.null()NaN1结果 NaNis.nan()# 向量化与回收规则计算题最好出在这里 x - c(1, 2, 3, 4, 5, 6) m - matrix(x, nrow 2) # 默认按列填充2 行 3 列 m c(10, 20) # 长度 2 的向量循环补齐到 6 个元素 x[x 3] # 返回元素本身 which(x 3) # 返回位置下标 # NA 的处理na.rm 是所有聚合函数的关键参数 mean(c(1, 2, NA)) # NA mean(c(1, 2, NA), na.rm TRUE) # 1.5matrix默认按列填充要按行必须写byrow TRUE这一条几乎每份试卷都会涉及。m c(10, 20)中短向量被循环使用长度不是整数倍时 R 会给出 warning判断题常拿它设陷阱。na.rm默认是FALSE忘了加就得到 NA是上机题最常见的失分点之一。2.4 一段自检脚本确认环境能支撑后续所有例子# 环境自检上机前跑一遍避免考场上发现包没装 need - c(tidyverse, ggplot2, survival, survey, forecast, vegan, QCA) installed - rownames(installed.packages()) missing - setdiff(need, installed) if (length(missing)) install.packages(missing) sapply(need, function(p) as.character(packageVersion(p))) sessionInfo()setdiff找出没装的包避免每次都重装。packageVersion逐条打印版本把版本写进复习资料是有意义的模型类的包换版本后默认参数可能变。sessionInfo()输出 R 版本、平台和已加载包出问题时把这段贴出来别人能直接定位到环境差异。3. 数据框与数据分析案例把 r语言数据分析案例 拆成可复现的四个动作3.1 read.csv 的五个参数与中文编码陷阱# 读入成绩表编码与列类型是期末最容易翻车的地方 df - read.csv( scores.csv, header TRUE, sep ,, stringsAsFactors FALSE, fileEncoding UTF-8-BOM, na.strings c(, NA, 缺失) ) str(df)header决定第一行是不是列名默认就是TRUE显式写出来是为了答题规范。stringsAsFactors从 R 4.0 起默认已是 FALSE老资料里的as.is之类写法可以扔掉。fileEncoding在 Windows 上最常见的是GBKExcel 另存出来的 CSV 常带 BOM写UTF-8-BOM才不会在首列名里出现 。na.strings把多种缺失写法一次性统一成 NA比读进来再ifelse改省事得多。str()检查列类型数字列被读成字符是最常见的连带问题。3.2 dplyr 管道期末最常考的三类操作library(dplyr) result - df | filter(!is.na(score)) | # 去掉缺失行 mutate(grade ifelse(score 90, A, B)) | group_by(class, grade) | summarise(n n(), avg mean(score), .groups drop) | arrange(desc(avg))R 4.1 之后原生管道|可用和 magrittr 的%%在答题时二选一即可混用不会报错但可读性差。filter保留条件为真的行mutate派生新列group_by加summarise是分组聚合的固定搭配.groups drop去掉残留分组标记否则后续操作会带着隐藏分组结果对不上。arrange(desc(avg))降序排列。dplyr 动词对应 SQL作用filterWHERE行筛选selectSELECT列选择mutate计算列新增或改写列group_by summariseGROUP BY分组聚合arrangeORDER BY排序把这张表记住SQL 和 dplyr 的互译题基本不会丢分join系列的left_join、inner_join也按同一逻辑对上 JOIN 各变体。3.3 α多样性 r语言 计算从丰度表到多样性指数# α 多样性手算与 vegan 包对照 abund - c(12, 8, 5, 3, 2) p - abund / sum(abund) shannon - -sum(p * log(p)) # 手算 simpson - 1 - sum(p^2) library(vegan) diversity(abund, index shannon) # 与手算结果对照p是相对丰度log默认取自然对数换成 log2 数值会变答题时必须写明底数。Simpson指数不同教材定义不同有的直接用sum(p^2)用之前先看题干给的是哪一个。vegan::diversity的index参数可填shannon、simpson、invsimpson三者在同一份丰度数据上给出的排序通常一致但数值不可互换。3.4 ggplot2 与 plot画图题的取舍library(ggplot2) ggplot(df, aes(x class, y score, fill class)) geom_boxplot(outlier.color red) labs(title 各班成绩分布, x 班级, y 分数) theme_minimal()aes里定的映射决定分组和配色geom_boxplot的outlier.color单独设离群点颜色题目要求画出离群点时必须显式写。labs里的中文标题在 Windows 上需要指定字体加一句theme(text element_text(family SimHei))才不会显示成方框。基础plot函数在画散点、直方图和残差诊断图时依然更省事画图题一般是「基础图形画诊断、ggplot2 画成品」两边都要会。4. 统计建模从 lm 到 iptw r语言代码 与 sarima 模型 r语言4.1 公式语法与因子水平lm 和 glm 的公共坑# r语言医学数据分析里最常见的建模入口 fit - lm(score ~ class hours class:hours, data df) summary(fit) contrasts(df$class) # 看参照水平怎么取的公式里~左边是因变量右边是自变量表示并列:只加交互项*等于主效应加交互-1去掉截距。因子在模型里默认按字典序取第一个水平作参照contrasts()能看到实际编码relevel(df$class, ref B)可以改参照组这一条在解释回归系数时是必须做的动作。summary输出的 Estimate 是相对参照水平的差值不是该组的绝对值写结论时容易说错。4.2 模型诊断残差图要看哪三张par(mfrow c(2, 2)) plot(fit) par(mfrow c(1, 1))第一张残差对拟合值看有没有喇叭口形状有就说明方差不齐第二张正态 Q-Q 图点要贴着直线走尾部偏离说明残差偏态第三张标准化残差平方根对拟合值用来找高杠杆点第四张残差对杠杆值标出 Cook 距离大的观测。四张图里至少前两张是必看项。par(mfrow c(2, 2))把画布切成两行两列画完记得改回来否则后面所有图都会被压进格子里。4.3 iptw r语言代码倾向性评分加权的完整实现library(tidyverse) # 倾向性评分以是否接受处理为因变量做逻辑回归 ps_model - glm(treat ~ age sex bmi hypertension, data cohort, family binomial()) cohort$ps - predict(ps_model, type response) # 计算 IPTW 权重 cohort - cohort | mutate( w_ate ifelse(treat 1, 1 / ps, 1 / (1 - ps)), # 稳定权重乘以边际处理概率压缩极端值 w_stab w_ate * ifelse(treat 1, mean(treat 1), mean(treat 0)) ) summary(cohort$w_stab) # 检查权重分布 library(survey) design - svydesign(ids ~1, weights ~w_stab, data cohort) svyglm(outcome ~ treat age sex, design design, family gaussian())predict(type response)输出概率不写就得到 log-odds这是最容易忽略的一处。w_ate是 ATE 的逆概率权重处理组取1/ps对照组取1/(1-ps)。稳定权重乘上边际处理概率极端值会被压下来。svydesign把权重交给 survey 包标准误才算得对直接写lm(..., weights w)得到的标准误偏小这是审稿最常被挑的问题。权重检查看summary(cohort$w_stab)最大值超过 10 就考虑截尾或改用 ATT 权重。4.4 sarima 模型 r语言定阶、拟合与残差白噪声检验library(forecast) ts_data - ts(cohort_monthly, start c(2019, 1), frequency 12) fit - auto.arima(ts_data, seasonal TRUE, stepwise FALSE, approximation FALSE) arimaorder(fit) # 取出 p d q 和 P D Q checkresiduals(fit) # 残差白噪声检验 forecast(fit, h 6) # 预测未来 6 期frequency 12是月度数据的固定写法季度写 4不设的话季节项识别不出来auto.arima会退化成普通 ARIMA。auto.arima用 AICc 在候选阶数里搜索stepwise FALSE搜得更全但明显更慢approximation FALSE关掉近似计算期末数据量小可以都关。checkresiduals给出 Ljung-Box 检验p 值小于 0.05 说明残差还有自相关阶数要重新调p 值大且残差图看起来像白噪声模型才算通过。5. 把汇总落成文件R Markdown 渲染 docx 与自测题批量生成知识点整理完最后一步是让它可复现。用 R Markdown 或 Quarto 写渲染时直接产出 docx代码和结果一起进文档改一次数据重新渲染就全更新--- title: R 语言期末知识点汇总 output: word_document: reference_docx: template.docx ---正文里的代码块用{r}开头加echo TRUE显示代码、message FALSE屏蔽加载信息、warning FALSE屏蔽警告。渲染命令是rmarkdown::render(summary.Rmd)指定output_file可以控制文件名。reference_docx指向一个排好版的空白 word 模板标题字号、代码字体、表格边框都会跟着模板走比每次手工调格式稳。自测题也可以批量生成把题库存成 CSV每行一题用抽行号的方式组卷# 从题库随机抽题生成一套自测卷 set.seed(2024) bank - read.csv(question_bank.csv, fileEncoding UTF-8) paper - bank[sample(nrow(bank), 20), ] write.csv(paper, mock_exam.csv, row.names FALSE, fileEncoding UTF-8)set.seed固定随机数种子保证每次抽到同一套题方便错题对照换一个种子就得到新卷。sample(nrow(bank), 20)抽行号如果想按章节比例抽先用split把题库分组再按各组比例分别抽样最后rbind合并。row.names FALSE去掉多余的行号列否则导出的 CSV 第一列是一串数字。跨领域练手可以顺手跑一段 QCA 如何实现 r语言 的代码library(QCA); tt - truthTable(dat, outcome Y, conditions c(A,B,C))真值表和一致性指标是定性比较分析的核心和回归建模对照着看对理解「条件组合」这件事很有帮助。把reference_docx换成自己排好版的模板标题层级、代码字体和表格边框都会跟着走改完题库重新渲染一次一份带代码、带输出、带自测题的汇总文档就出来了。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门