有什么办法可以控制考试ID吗?

Is there any way of controlling the exam ID?

我们使用 exams2nops 的循环来生成同一考试的多个考试版本,但在介绍文件中生成不同的数据库,该文件被添加到 exams2nops 生成的最终 PDF 中功能。但是,每个循环都会产生具有相同考试 ID 的考试,有什么方法可以控制每个考试的 ID 吗?

所以,我们需要的是用对应的rds文件自定义考试ID的生成,以备后用nops_eval

有一些有限的控制,参见参数 startid

一般来说,ID 总是由 yymmddxxxxx 组成,其中 yy 是考试日期的年份,mm 月份,dd 日期,而xxxxx默认是从00001开始的连续ID。但是,使用 startid 您可以从不同的初始 ID 开始。

例如,exams2nops(..., date = "2021-01-20")21012000001 开头,而 exams2nops(..., date = "2021-01-20", startid = 42)21012000042 开头。

就个人而言,当我混合少于10个不同批次的NOPS考试时,我使用了startid = 1startid = 10001startid = 20001

另请注意,您可以 nops_eval() 所有这些一起,您只需要手动合并它们生成的 .rds 文件。为此,readRDS() 将每个 .rds 文件放入某个对象,将所有对象与 c()saveRDS() 合并到您随后使用的新 .rds 文件中。如果要合并当前工作目录下的大量.rds文件,可以使用如下代码:

## readRDS all *.rds files in the current working directory
x <- lapply(Sys.glob("*.rds"), readRDS)

## combine all resulting lists
y <- do.call("c", x)

## saveRDS into a single .rds file
saveRDS(y, "all.rds")

谢谢阿奇姆!!!

这很适合我们的解决方案(特别是 .rds 文件合并)。

即便如此,我相信 exams 会受益于 extype: intro,其中可以随机生成一般介绍和数据集,然后用于以下练习。请考虑这个建议(下次在因斯布鲁克,我要啤酒!)

热烈的问候,

若昂