如何用R/exams从单个.Rmd生成无重复的指定数量习题?
用R/exams生成指定不重复参数的Moodle习题
要解决你遇到的“生成n=4时出现重复参数”的问题,核心是放弃随机抽样,让每道习题对应固定的参数行,通过给每个生成实例传递指定索引来实现:
1. 修改Rmd中的数据生成逻辑
把原来的随机抽样代码改成接收外部传入的索引参数,这样每道题可以精准调用对应参数组:
{r data generation, echo = FALSE, results = "hide"} data <- read.csv(header = TRUE, text = " r,b,g,p .05,1.3,.04,.03 .04,1.2,.05,.025 .035,1.1,.02,.03 .025,1.25,.015,.025") # 接收外部传入的i,未传入时默认用第一行(可选) if (!exists("i")) i <- 1 dd <- data[i, ]
2. 调用exams2moodle时指定索引序列
使用exams2moodle的args参数,为4道习题分别传递i=1到i=4,确保每道题对应唯一参数组:
exams2moodle( file = "你的习题文件.Rmd", # 替换成你的实际Rmd文件名 n = 4, args = list(i = 1:4), name = "unique_param_exam", dir = "./moodle_export" # 输出目录可自定义 )
关键说明
- 这种方式会让4次生成过程分别调用data的第1到第4行参数,完全避免重复。
- 如果后续参数组数量变化,只需要调整
args里的i范围(比如有5组参数就改成1:5)即可适配。
内容的提问来源于stack exchange,提问作者Massimo2013
相关产品推荐
相关产品推荐

