首页 > 解决方案 > 有没有办法控制考试ID?

问题描述

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

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

标签: rr-exams

解决方案


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

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

例如,exams2nops(..., date = "2021-01-20")21012000001whileexams2nops(..., 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")

推荐阅读