You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用exams包生成含固定试题的随机试卷:如何打乱试题顺序

解决R exams包生成含固定试题且随机排序试卷的问题

核心问题分析

你之前的代码存在两个关键问题:

  1. 第一个代码未启用题目顺序打乱功能,导致固定试题始终位于首位;
  2. 后两个代码提前完成了剩余试题的抽样与排序,生成的多份试卷会使用同一组试题,无法实现“每位学生试卷不同”的需求,还可能因语法错误导致试题遗漏。

正确实现代码

library(exams)

# 指定必须包含的固定试题路径
fixed_question <- "questions/a.Rmd"
# 获取questions文件夹下所有试题的完整路径
all_questions <- paste0("questions/", dir(path = "questions"))
# 筛选出除固定试题外的剩余试题
remaining_questions <- setdiff(all_questions, fixed_question)

# 构建试题池:第一个元素是固定试题,第二个是剩余试题集合
exam_pool <- list(fixed_question, remaining_questions)
# 设置各部分抽取数量:固定题抽1道,剩余题抽9道
nsamp_config <- c(1, 9)

# 生成5份试卷,shuffle=TRUE会打乱所有10道题的顺序
exams2pdf(exam_pool, n = 5, nsamp = nsamp_config, shuffle = TRUE)

关键说明

  • shuffle = TRUE:这个参数会将抽取后的所有试题(固定题+随机抽取的9道题)整体打乱顺序,彻底解决固定题始终在首位的问题;
  • 动态抽样:通过list结构+nsamp参数,每份试卷都会重新从剩余试题中抽取9道,确保不同学生的试卷试题组合不同;
  • 修正语法错误:之前的setdiff参数写法有误,正确写法是先生成所有试题路径,再用setdiff排除固定试题,避免剩余试题列表错误。

内容的提问来源于stack exchange,提问作者JayBee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:15:07