ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

R语言期末复习指南:从数据类型到假设检验的知识地图

R语言期末复习指南:从数据类型到假设检验的知识地图

简介:这份R语言试题文档面向正在学习或准备考核R语言基础的学习者,尤其适合需要系统梳理知识点、通过做题检验掌握程度的初学者与进阶自测者。内容围绕描述性统计与推断性统计的区分、名义数据与计量数据等数据类型辨析,以及getwd()、ls()、head()、rm()等常用操作展开,并延伸到向量运算、因子创建、矩阵构造与索引等数据操作与函数应用场景,题目均附带答案,便于对照理解。资源包共1个docx文件,约96KB,轻量易取,可直接用于课堂练习、期末复习或自学自测。目前已有11253人学习下载,具备一定的参考热度。读者可借助其中的选择题与填空解析,快速定位统计概念与R语法细节上的薄弱环节,形成从概念辨析到代码验证的完整复习路径。

1. R语言试题复习地图:从数据类型到假设检验的一条主线

R语言期末复习最容易翻车的地方,不是某个函数记不住,而是知识点散成一地:描述统计、数据类型、向量运算、矩阵索引、因子、列表、数据框、概率分布、参数估计,每一块单看都不难,合起来却串不成线。这份试题资源的价值就在于它把整门课压成了一条主线:先分清数据是什么类型,再谈用什么图表和数值去描述,接着进入R的对象体系与运算规则,最后落到概率分布与推断统计。复习时如果只背答案,换个问法就废;如果按这条线走,每道题都能找到归属模块。下面按知识地图逐块梳理,重点标出高频考点和血泪易错点。

2. 统计基础与数据类型:描述性统计和推断性统计的分界

2.1 描述性统计与推断性统计的区分

统计学的第一刀切在“描述”和“推断”上。用图或表描述数据,属于描述性统计;用样本信息去推测总体,属于推断性统计。试题里反复出现这个二分,是因为后面所有方法都要先归位:算均值、画直方图是描述;做参数估计、假设检验是推断。复习时不要只记结论,要能判断一个具体动作属于哪一边。比如“用样本均值估计总体均值”是推断,“计算样本均值本身”是描述。这个区分在选择题里常以“用图或表描述数据属于什么”出现,答案固定为描述性统计。

2.2 数据类型四象限:名义、有序、计数、计量

数据类型的分类是整门课的地基,试题用学历和身高两个例子反复考。梳理下来会发现一个四象限结构:

大类子类典型例子说明
定性数据名义数据学历中的“本科/硕士”类别标签只有类别,无顺序
定性数据有序数据学历中的“小学<初中<高中”类别之间有顺序
定量数据计数数据人数、件数只能取整数
定量数据计量数据身高、体重可连续取值

这里最容易错的是“学历”到底算名义还是有序。试题答案给的是有序数据,因为学历层次本身有高低顺序;但如果题目只问“专业类别”,那就是名义数据。判断标准不是看字段名,而是看取值之间有没有可比的大小关系。身高是典型的计量数据,因为它可以取小数且连续。定量数据分为计数数据和计量数据,定性数据分为名义数据和有序数据,这两句话要能默写。

提示:考试里遇到“某变量是什么数据”,先问两个问题——取值是类别还是数值?类别之间有没有顺序?两个问题答完,四选一基本不会错。

3. R对象与运算规则:向量、矩阵、因子、列表、数据框

3.1 向量运算与循环规则

R的向量运算有一套回收规则,试题第一道R题就考这个:c(1,2,3,4,5) + c(20,200)的结果是21 202 23 204 5。短向量被循环补齐,这是R区别于很多语言的核心行为。复习时要能手动推演长度不整除时的结果,而不是靠运行。另一个高频点是冒号运算符的优先级:1:n-1先算1:n再减1,结果是0 1 2;如果想得到1 2,要写1:(n-1)。这类题看着简单,考场上手滑就翻车。

# 向量回收:短向量循环补齐 c(1, 2, 3, 4, 5) + c(20, 200) # 结果: 21 202 23 204 5 # 冒号优先级:先 1:n,再整体减 1 n <- 3 1:n - 1 # 结果 0 1 2 1:(n - 1) # 结果 1 2

上面代码的关键在于理解运算符优先级和回收机制。1:n-1中冒号优先级高于减号,所以先构造1:3再逐元素减1;1:(n-1)用括号强制先算n-1。参数上,n控制向量长度,括号位置决定运算顺序。失败时先看括号,再看向量长度是否整除。

3.2 矩阵创建与索引

矩阵题在试题里占了一大块,核心是“按列填充”这个默认行为。matrix(1:12, nrow=3)会得到三行四列、按列排的矩阵;array(1:12, c(3,4))和dim(A)<-c(3,4)也能达到同样效果。索引部分要分清A[2:3, c(3,4)]和A[c(3,4), 2:3]的区别:前者取第2到3行、第3到4列,后者取第3到4行、第2到3列。试题里“结果为 8 11 / 9 12”的题,答案对应的是取第2到3行、第3到4列。另一个易错点是取整列时A[,1]返回向量,而A[1:3,1]也返回向量,两者在矩阵只有一列时结果一致,但语义不同。

A <- matrix(1:12, nrow = 3) # [,1] [,2] [,3] [,4] # [1,] 1 4 7 10 # [2,] 2 5 8 11 # [3,] 3 6 9 12 A[2:3, c(3, 4)] # 取第2到3行、第3到4列 A[, 1] # 取第一列,返回向量 apply(A, 2, sum) # 按列求和,结果 6 15 24 33

apply的第二个参数是边距:1表示按行,2表示按列。试题里“结果为 6 15 24 33”对应按列求和,所以是apply(A,2,sum)。tapply用于分组汇总,不是矩阵按边距运算,这两个函数经常被混淆。矩阵合并用rbind()按行合并、cbind()按列合并,试题里“前两个矩阵合并成第三个”要看清是行方向还是列方向。

3.3 因子、列表与数据框

因子是R里处理分类变量的专门结构。试题考了factor(x, levels=c(1,2), labels=c("行政部","财务部"))的用法:levels指定保留哪些水平,labels给水平贴标签。如果只想统计1和2两个部门,levels就只写c(1,2),写三个水平会把3也保留进来。gl()也能生成因子,但参数顺序和factor()不同,选择题里常拿两者做干扰项。

列表是R里最灵活的结构,用[[ ]]取元素本身,用[ ]取子列表。试题里mylist[[2]][3]取的是第二个元素(字符向量)的第三个值,结果是"c";要取矩阵里的数字8,需要mylist[[3]][2,3]或mylist[[3]][8],因为矩阵按列存储,第8个元素正好是第二行第三列。

数据框的列本质是向量,列内类型一致,列间类型可以不同。试题里df[["Height"]]、df$Height、df$"Height"都能取出数值向量,而df["Height"]返回的是数据框。这个差别在后续做运算时很关键:数据框不能直接传给需要数值向量的函数。数据框的一列代表一个变量,一行代表一个观测,这个方向不能反。

注意:df["Height"]和df[["Height"]]的区别是高频易错点,前者是数据框,后者是向量。考试里问“得到[1] 56.5 65.3 ...”这种带[1]的向量输出,答案一定不是单括号。

4. 描述性分析与概率分布:图表、平均数与常见分布

4.1 定性数据与定量数据的描述工具

定性数据的数值描述用频数和相对频数,对应函数table()和prop.table();图形描述用条形图、饼图和Pareto图,对应barplot()和pie()。定量数据的图形描述用直方图、茎叶图和箱线图,对应hist()、stem()和boxplot()。这组对应关系要背到条件反射,因为试题里经常把函数名和图形名交叉配对来设干扰项。

平均数的选择是另一条高频线。总评成绩按权重加总,用加权平均数;股票按股数加权算平均价格,也是加权平均数;前半段和后半段距离相等、速度不同,求平均速度用调和平均数;各买1元钱水果、价格不同,求平均每千克价格同样用调和平均数;连续几天按固定增长率变化,求平均增长用几何平均数。判断口诀:权重已知用加权,速度或单价按固定金额用调和,比率连乘用几何。

场景适用平均数判断依据
成绩按比例加总加权平均数各分量权重不同
按股数算平均股价加权平均数股数是权重
等距离不同速度求平均速度调和平均数距离相等,速度取倒数平均
等金额不同单价求平均价格调和平均数金额相等,单价取倒数平均
连续增长率求平均增长几何平均数比率连乘

4.2 离散分布与连续分布的参数

离散分布里,二项分布B(n,p)的期望是np,方差是np(1-p);泊松分布P(λ)的期望和方差都是λ;超几何分布用于无放回抽样,二项分布用于有放回抽样。连续分布里,均匀分布U(a,b)的期望是(a+b)/2,方差是(b-a)^2/12;正态分布N(μ,σ^2)的期望是μ,方差是σ^2;指数分布的期望是1/λ,方差是1/λ^2。

指数分布和泊松分布的关系是常考的理解题:泊松分布描述单位时间内事件发生的次数,指数分布描述两次事件之间的间隔时间。如果每小时到达车辆数服从均值为10的泊松分布,那么间隔时间服从指数分布,平均间隔为1/10小时。这个“倒数”关系要能双向翻译。

样本均值的分布也是重点:从N(μ,σ^2)抽样本量为n的样本,样本均值服从N(μ, σ^2/n)。试题里四个选项绕来绕去,核心就是方差要除以n。统计三大分布是卡方分布、t分布和F分布,不要和常见的离散/连续分布混在一起。

5. 易漏点与易错点:五条最容易丢分的细节

5.1 易漏点一:head()的第二个参数写法

试题问“显示前10个观测值怎么写”,标准答案给了head(rt, n=10)和head(rt, 10)两种写法。容易漏的是参数名n可以省略,但位置必须对;写成head(rt, 10)没问题,写成head(10, rt)就完全错了。补法:记住head(x, n)的第一个参数是数据对象,第二个才是行数。

5.2 易漏点二:rm(list=ls(pat="^n"))的匹配模式

删除以字母n开头的对象,用rm(list=ls(pat="^n"))。容易漏的是pat参数是正则表达式,^n表示以n开头,不是包含n。如果写成"n"会删掉所有名字里含n的对象。补法:正则里^是锚点,删前缀必须带它。

5.3 易漏点三:which()返回的是位置不是值

which(2:8 > 5)返回的是满足条件的位置索引,结果是6 7 8,不是6 7 8对应的值。容易漏的是把which()和直接逻辑索引混为一谈。补法:which()给下标,x[x>5]给值,题目问“运行结果”时要看返回的是下标还是元素。

5.4 易漏点四:负索引删除与空集

v <- 10:5; v[-(1:5)]的结果是空集,因为负索引表示“排除这些位置”,排除前五个后什么都不剩。容易漏的是以为负索引会报错或返回原向量。补法:负索引是删除语义,删除全部就是空。

5.5 易漏点五:switch()的匹配方式

switch(x, 3+5, 3*5, 3-5, 3**5)当x=4时返回243,因为switch按位置匹配,第四个表达式是3**5。容易漏的是把switch当成按名字匹配,或者把3**5误算成15。补法:位置匹配时数清楚第几个,幂运算是**不是*。

6. 复习清单与查漏补缺:按模块过一遍再上考场

复习到这一步,建议不要再从头翻书,而是拿一张白纸按模块默写。第一块写数据类型四象限,把名义、有序、计数、计量各配一个例子;第二块写R对象体系,向量回收、矩阵按列填充、因子levels、列表双括号、数据框单双括号的区别;第三块写描述统计的函数对应表,table()对频数、prop.table()对相对频数、hist()对直方图、stem()对茎叶图;第四块写概率分布的期望方差表,二项、泊松、均匀、正态、指数各一行;第五块写样本均值的分布和三大分布的名字。

默写完之后,用试题里的错题做反向检查。具体做法是:每道错题不要只看正确答案,而是问自己“我当时选错是因为哪个概念模糊”。如果错在df["Height"]和df[["Height"]],就回到数据框那一节把单双括号的返回类型各写一遍;如果错在平均数选择,就把加权、调和、几何各造一个生活场景;如果错在矩阵索引,就画一个3×4的格子,手动标出A[2:3,3:4]覆盖的位置。这种“错题反查概念”的方法比刷十道新题管用。

复习模块自检问题如果答不上来
数据类型学历和身高分别是什么数据?回看四象限表
向量运算1:n-1和1:(n-1)差在哪?手推优先级
矩阵索引A[2:3,3:4]取的是哪几行哪几列?画格子标位置
因子levels和labels各管什么?写一个三水平例子
数据框单括号和双括号返回类型差在哪?各写一行代码
平均数等距离不同速度用什么平均数?背判断口诀
分布指数分布和泊松分布怎么互相翻译?记倒数关系

最后留一个习惯:每次做R题,先在草稿上写“对象类型→运算规则→返回类型”三步,再动笔选答案。我当初复习时就是跳过这一步,看到df["Height"]觉得“都是取Height,应该一样”,结果选择题连错两道,后来每次遇到取子集都强制先问返回的是数据框还是向量。希望这份梳理帮到你,把地图装进脑子再进考场,比多刷一套题踏实。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进