r-exams - `nops_eval` 没有读取考试 ID,如何控制考试 ID 读取?
问题描述
我有大约 400 次考试,其中我定义了一个自定义 ID(使用函数exams2nops
)。但是,当我使用 nops_scan 时,没有一个 ID 被识别...例如:
是因为考试 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
to5L
并覆盖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")
推荐阅读
- ruby-on-rails - AWS elasticsearch 服务抛出 Faraday::ConnectionFailed: Failed to open TCP connection to https:80 (getaddrinfo: Name or service not known)
- reactjs - 为什么析构对事件有效,没有它就行不通
- javascript - Braintree客户端支付方式购买
- c# - ASP.NET Core MVC 参数化验证、条件验证或基于其父类的属性验证
- mysql - SQL加入两个表,但如果它存在于第二个表中则覆盖第一个表
- c++ - 数组会被视为变量吗?
- javascript - uri 不应该是 React Native 中的空字符串
- python-3.x - Openpyxl问题:删除行不移动合并的单元格
- javascript - 从 site.ru/idxxxxx 重定向到 site.ru/name.php?id=xxxxx
- php - 使用 Load Data Infile 将数据加载到 MySQL