ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

R语言试题考点精讲:向量化运算、数据类型与统计分布

R语言试题考点精讲:向量化运算、数据类型与统计分布

简介:这份R语言试题文档面向正在学习或备考R语言的初学者与数据分析入门者,帮助其通过做题巩固基础语法与统计概念。内容覆盖描述性统计与推断性统计的区分、名义数据与计量数据等数据类型判断,以及getwd()、head()、ls()、rm()等常用操作命令,并延伸到向量运算、因子创建、矩阵构造与索引等数据操作细节,每道题均附带参考答案,便于自测与查漏补缺。资源包内含1个docx文件,约96KB,轻量易读,适合打印练习或对照复习。目前已有11252人学习下载,热度较高,说明其题目设置与知识点覆盖获得较多学习者认可。读者可借此系统梳理R语言入门阶段的核心考点,快速检验对统计基础与R基本操作的掌握程度,为后续数据分析实践打下扎实基础。

1. 从一道“送分题”翻车说起:这套 R 试题到底考什么

先看一道题:c(1, 2, 3, 4, 5) + c(20, 200)的结果是什么?四个选项里,两个看起来都像那么回事。很多人第一反应是“向量长度不一样,肯定报错”,直接选了 A。正确答案是 C——R 的向量化运算会自动循环补齐短向量,c(20, 200)被拉长成c(20, 200, 20, 200, 20),逐位相加得到21 202 23 204 25。这道题不考你背没背过加法,考的是你对 R 底层运算逻辑有没有形成条件反射。

这套 R 试题附带答案,覆盖绪论、R 软件入门、数据描述性分析、概率与随机变量、参数估计与假设检验五大模块。题型以选择、填空、代码结果判断为主,考的不是你会不会写复杂程序,而是你对 R 语言核心机制和统计学基本概念的掌握是否扎实。适合正在准备 R 语言相关课程期末考、数据分析岗笔试、统计学基础面试的人。下面按考点模块拆开讲,每道题都给答题思路,你直接拿去练。

2. 绪论与数据类型:统计学的“户口本”怎么定

2.1 描述性统计 vs 推断性统计:一句话分清

绪论部分反复考一个区分:用图或表描述数据,属于什么统计?答案是描述性统计。统计学分为描述性统计和推断性统计两大类。这个知识点本身不难,但出题人会换着花样问——给你一个场景,让你判断属于哪一类。

答题思路很简单:看目的是“概括当前数据”还是“由样本推总体”。画直方图、算均值、做频数表,都是描述性统计;用样本均值估计总体均值、做假设检验、构造置信区间,都是推断性统计。面试官如果问“你怎么理解描述性统计和推断性统计的区别”,别背定义,直接说“描述性统计是看手里这副牌有什么,推断性统计是猜整副牌长什么样”,对方立刻知道你懂了。

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

这是必考考点,而且极易混淆。原题里问“学历是什么数据”,答案是名义数据;问“身高是什么数据”,答案是计量数据。这里要建立一个清晰的分类框架:

大类子类特征例子
定性数据名义数据类别无顺序性别、血型、学历
定性数据有序数据类别有顺序满意度等级、教育程度
定量数据计数数据只能取非负整数人数、次数
定量数据计量数据可取任意数值身高、体重、温度

注意一个容易翻车的点:学历在有些教材里被归为有序数据,但这套题明确给的是名义数据。考试时以题目给出的分类标准为准,不要跟出题人较劲。面试中如果被问到,你可以说“学历严格来说是有序的,但如果只区分类别不做排序,按名义数据处理也常见”,展示你知道争议点在哪。

2.3 真题演练:数据类型判断题

题目:定量数据分为计数数据和______;定性数据分为______和有序数据。

答题思路:第一空填“计量数据”,第二空填“名义数据”。这类填空题考的是分类体系的完整性,你脑子里要有一棵树:定量分两支,定性分两支,一共四个叶子节点。记忆口诀可以自己编,比如“定量计计,定性名有”,顺口就行。

另一道:L <- 3 == 5,变量 L 是什么类型,值是多少?答案是逻辑变量,FALSE。这里考的是 R 中比较运算符返回逻辑值,3 == 5不成立所以是 FALSE。面试官可能会追问“如果写L <- 3 = 5会怎样”,答案是报错,因为=在赋值语境下不能做比较。这种细节题就是用来筛掉“大概知道”的人的。

3. R 软件入门:工作空间、向量运算与函数调用

3.1 工作目录与对象管理:getwd、ls、rm 三件套

原题里连续考了三个基础命令:查看当前工作目录用getwd(),列出当前工作空间所有变量名用ls(),删除所有以字母 n 开头的对象用rm(list=ls(pat="^n"))。这三个命令是 R 入门必考,没有商量余地。

getwd()返回当前工作目录的绝对路径,setwd()用来修改。面试中如果问“你怎么管理 R 项目的工作目录”,别只说 setwd,要提“用 RStudio 项目文件或 here 包来管理相对路径,避免 setwd 写死绝对路径导致换台机器就跑不了”。这个回答直接拉开你跟背题选手的差距。

ls()列出变量名,ls.str()还会显示每个变量的结构。删除对象的rm()本身不难,但rm(list=ls(pat="^n"))这个组合考的是ls()的pat参数支持正则表达式,^n表示以 n 开头。答题时如果记不住完整写法,至少写出rm(list=ls(pattern="^n")),pat是pattern的缩写,R 会自动做部分匹配。

3.2 向量化运算与循环补齐:R 的“玄学”之一

回到第 1 章提到的那道题:c(1,2,3,4,5) + c(20,200)。R 的向量运算默认按元素对齐,短向量自动循环补齐。这个机制叫“recycling rule”,是 R 最核心的运算逻辑之一,也是面试高频考点。

# 向量循环补齐示例 a <- c(1, 2, 3, 4, 5) b <- c(20, 200) a + b # 输出: 21 202 23 204 25 # b 被循环扩展为 c(20, 200, 20, 200, 20)

逻辑说明:R 不会因为长度不匹配就报错,而是把短向量反复重复直到长度对齐。如果长向量长度不是短向量长度的整数倍,R 会给出警告但仍然计算。这个机制在数据框列运算中同样适用,但容易导致静默错误——你以为在算 A 列减 B 列,实际上 B 列被循环补齐了。面试官如果问“R 向量运算有什么坑”,这就是标准答案。

3.3 真题演练:函数嵌套与结果判断

题目:sum(seq(1,5,by=2))的运行结果是多少?

答题思路:先算seq(1,5,by=2),生成序列 1, 3, 5;再算sum(1,3,5),结果是 9。这类题考的是函数嵌套的求值顺序,从内到外一层层剥。面试中如果让你口算,别慌,把中间结果写出来再算下一步。

题目:mean(rep(1:3, length.out = 5))的运行结果是多少?

答题思路:rep(1:3, length.out=5)把 1,2,3 重复并截断到长度 5,得到 1,2,3,1,2;均值是(1+2+3+1+2)/5 = 1.8。注意length.out参数和times参数的区别:times控制重复次数,length.out控制最终长度。这道题如果错,大概率是把length.out=5理解成了“重复 5 次”。

题目:which(2:8 > 5)的运行结果是什么?

答题思路:2:8是 2,3,4,5,6,7,8;> 5得到 FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE;which()返回 TRUE 的位置索引,即 5,6,7。答案是 B。注意which()返回的是位置,不是值,这是最常见的失分点。

4. 数据描述性分析:平均数选择与图形函数

4.1 四种平均数的适用场景:算术、加权、几何、调和

这部分是描述性统计的核心考点,原题连续出了四道平均数选择题。核心判断逻辑如下:

  • 算术平均数:各观测值同等重要,直接加总除以个数。比如一周每天卖的手机数。
  • 加权平均数:各观测值权重不同。比如总评成绩 = 平时 10% + 实验 20% + 期末 70%。
  • 几何平均数:用于比率或增长率连乘场景。比如连续多期的平均增长率。
  • 调和平均数:用于“每单位多少钱”或“每公里耗油”这类倒数关系。比如前半段时速 60、后半段时速 30,求平均速度。

原题里有一道经典题:三个农贸市场各买 1 元钱水果,价格分别是 1.00、0.90、0.90 元/千克,求平均每千克价格。答案是调和平均数。为什么?因为你花的是固定金额(1 元),买到的是不同重量,总金额除以总重量才是平均价格。如果各买 1 千克,那就用算术平均数。这个区分点面试官非常喜欢考,因为能直接看出你有没有真正理解“权重在哪”。

4.2 定性数据与定量数据的图形函数对照

原题要求填空:描述定性数据的图形主要有条形图、饼图和 Pareto 图,对应函数barplot()、pie();描述定量数据的图形有直方图、茎叶图和箱线图,对应函数hist()、stem()、boxplot()。

这里有一个容易混的点:条形图(barplot)和直方图(hist)长得像但用途不同。条形图用于定性数据的频数展示,横轴是类别;直方图用于定量数据的分组频数,横轴是数值区间。面试中如果问“什么时候用条形图什么时候用直方图”,你就说“看横轴是类别还是数值区间”,一句话说清。

数值法描述定性数据用频数和相对频数,对应函数table()和prop.table()。table()返回频数表,prop.table()把频数转成比例。这两个函数经常配合使用,比如prop.table(table(x))直接得到相对频数表。

4.3 真题演练:图形函数填空题

题目:常见描述定量数据的图形有______、和箱线图,它们在 R 中对应的函数分别是、______和 boxplot()。

答题思路:填“直方图、茎叶图、hist()、stem()”。这类题没有捷径,就是记牢。但记忆时可以按“图形-函数”配对记:直方图 histogram 对应 hist,茎叶图 stem-and-leaf 对应 stem,箱线图 boxplot 对应 boxplot。函数名基本是英文全称的缩写,按这个逻辑记不容易混。

题目:一段路程前半段时速 60 公里,后半段时速 30 公里,两段距离相等,求平均速度应该用什么平均数?

答题思路:距离相等,时间不同,总距离除以总时间。设每段距离为 d,总时间 = d/60 + d/30,平均速度 = 2d / (d/60 + d/30) = 40。这是调和平均数的典型场景。判断口诀:固定分子用算术,固定分母用调和,比率连乘用几何。

5. 概率分布与参数估计:必考公式与易错陷阱

5.1 常见分布的期望与方差:一张表背下来

原题覆盖了二项分布、泊松分布、均匀分布、正态分布、指数分布。这些分布的期望和方差是必考内容,直接给表:

分布记号期望 E(X)方差 Var(X)
二项分布B(n,p)npnp(1-p)
泊松分布P(λ)λλ
均匀分布U(a,b)(a+b)/2(b-a)²/12
正态分布N(μ,σ²)μσ²
指数分布Exp(λ)1/λ1/λ²

注意泊松分布的期望和方差相等,都是 λ,这个特征经常用来判断一个计数数据是否适合用泊松分布建模。指数分布是泊松分布的事件间隔分布,如果每小时到达 λ 辆车,间隔时间服从 Exp(λ),平均间隔 1/λ 小时。原题里洗车店那道题考的就是这个关系。

5.2 离散 vs 连续:分类不能错

二项分布、泊松分布、超几何分布属于离散型随机变量;均匀分布、正态分布、指数分布属于连续型。这个分类是基础中的基础,但考试时容易在超几何分布上犹豫。记住:只要取值是可数的整数,就是离散。

二项分布适用于有放回抽样,超几何分布适用于无放回抽样。这个区别在面试中经常被追问:“为什么无放回要用超几何?”因为无放回时每次抽取会改变剩余总体中目标个体的比例,各次试验不独立,不满足二项分布的独立性假设。

5.3 易错点:这些题看着简单,错的人最多

易错点一:样本均值的分布。题目:设 X₁,X₂,…,Xₙ 来自正态总体 N(μ,σ²),样本均值 X̄ 服从什么分布?答案是 N(μ, σ²/n)。很多人选 N(μ, σ²),忘了样本均值的方差是总体方差除以样本量。记住:样本量越大,样本均值越集中,方差越小。

易错点二:统计量的定义。题目问哪个不是统计量。统计量是样本的函数,不能包含未知的总体参数。如果表达式里出现了未知的 μ 或 σ,那就不是统计量。这个判断标准要刻在脑子里。

易错点三:三大抽样分布。统计三大分布是 χ² 分布、t 分布、F 分布。不是均匀、正态、指数——那是连续型随机变量的常见分布。这两组概念经常被混在一起考,看清楚题目问的是“随机变量分布”还是“抽样分布”。

易错点四:点估计方法。常见点估计方法有矩估计法、最大似然估计法和最小二乘估计法。矩估计法的基本思想是用样本矩去估计总体矩。填空时注意“矩”字不要写错,最大似然估计法六个字要写全。

易错点五:1:n-1的运算优先级。原题里n <- 3; 1:n-1的结果是 0 1 2,不是 1 2。因为冒号优先级高于减号,先算1:n得到 1,2,3,再整体减 1 得到 0,1,2。如果想得到 1,2 应该写1:(n-1)。这个坑在面试中经常被用来测试你是否真的理解 R 的运算符优先级。

6. 答题技巧与押题思路:从“会做”到“做对”

考 R 语言试题,最大的敌人不是不会,而是“以为会了但写错”。我踩过最深的坑是矩阵索引:A[2:3, 3:4]和A[c(3,4), 2:3]看起来都在取子矩阵,但取出来的东西完全不同。从那以后我每次做矩阵题都强制走一遍“先行后列、逗号分隔”的口诀,确认行索引和列索引分别是什么。

给你三个答题习惯,直接拿去用:

第一,代码结果判断题,先写中间结果。比如x <- rep(c(1,4,7), c(3,2,1)),先在草稿上展开成1,1,1,4,4,7,再执行x[x>5],得到 7。不要试图在脑子里一步到位,中间步骤写出来错误率降一半。

第二,函数参数题,先确认参数名和默认值。head(rt, n=10)和head(rt, 10)等价,因为第二个位置参数就是 n。但head(rt, n=10)更安全,因为参数名写清楚了,别人读代码不会歧义。面试中如果问“你写 R 代码有什么习惯”,就说“关键参数一定写参数名”,这是加分项。

第三,概率分布题,先画表再代入。期望和方差公式容易记混,尤其是均匀分布的方差 (b-a)²/12 和指数分布的 1/λ²。我的做法是考前把五个分布的期望方差默写一遍,考试时先写在草稿纸角落,做题时直接查表,不靠临时回忆。

押题方向上,重点看三个:向量循环补齐的运算结果、数据类型的四象限分类、常见分布的期望方差。这三个考点几乎每套 R 试题都会出现,而且变体不多,练熟就能拿分。矩阵索引和列表取值也是高频区,尤其是mylist[[3]][2,3]这种嵌套取值,考的是你对[[和[区别的理解——[[取元素本身,[取子列表。

最后说一个面试技巧:如果被问到“你 R 语言什么水平”,别只说“熟练使用”。给一个具体场景,比如“我用 R 做过描述性统计和假设检验,能熟练用 apply 家族替代循环,也踩过向量循环补齐的坑”。有细节、有踩坑经历、有反思,比任何形容词都有说服力。希望帮到你。

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

RELATED READING

延伸阅读

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