`nops_eval`不是读考号,怎么控制读考号?
`nops_eval` is not reading the exam ID, how can I control the exam ID reading?
我有大约 400 个考试,我在其中定义了一个自定义 ID(使用函数 exams2nops
)。但是,当我使用 nops_scan none 时,ID 被识别...示例:
考试样本:
是考号字符数的问题吗?
是的,考试 ID 需要正好有 11 位数字。我将在 exams2nops()
.
中添加关于此的警告
“罪魁祸首”是来自内部 read_nops_digits()
函数的这一行:
body(exams:::read_nops_digits)[[6]]
## n <- switch(type, type = 3L, id = 11L, scrambling = 2L)
因此,当读取 id
时,该函数需要 11 位数字。但是,令我惊喜的是,如果将此 11L
更改为 5L
那么一切似乎都有效。您可以通过复制此函数的 f
、将 11L
更改为 5L
并覆盖 exams
包命名空间中的函数来以编程方式执行此操作:
library("exams")
f <- exams:::read_nops_digits
body(f)[[c(6, 3, 4)]] <- 5L
assignInNamespace("read_nops_digits", f, ns = "exams")
在那之后 运行 nops_scan()
应该可以根据您的情况工作。
附加评论: 除了像上面那样以编程方式覆盖 read_nops_digits()
函数,您还可以使用编辑器“手动”修改函数,方法是:
fixInNamespace("read_nops_digits", ns = "exams")
我有大约 400 个考试,我在其中定义了一个自定义 ID(使用函数 exams2nops
)。但是,当我使用 nops_scan none 时,ID 被识别...示例:
考试样本:
是考号字符数的问题吗?
是的,考试 ID 需要正好有 11 位数字。我将在 exams2nops()
.
“罪魁祸首”是来自内部 read_nops_digits()
函数的这一行:
body(exams:::read_nops_digits)[[6]]
## n <- switch(type, type = 3L, id = 11L, scrambling = 2L)
因此,当读取 id
时,该函数需要 11 位数字。但是,令我惊喜的是,如果将此 11L
更改为 5L
那么一切似乎都有效。您可以通过复制此函数的 f
、将 11L
更改为 5L
并覆盖 exams
包命名空间中的函数来以编程方式执行此操作:
library("exams")
f <- exams:::read_nops_digits
body(f)[[c(6, 3, 4)]] <- 5L
assignInNamespace("read_nops_digits", f, ns = "exams")
在那之后 运行 nops_scan()
应该可以根据您的情况工作。
附加评论: 除了像上面那样以编程方式覆盖 read_nops_digits()
函数,您还可以使用编辑器“手动”修改函数,方法是:
fixInNamespace("read_nops_digits", ns = "exams")