首页 > 解决方案 > OpenOLAT 中 R/exams 中输入字符串的大小写不敏感更正

问题描述

这个问题涉及 OpenOLAT 中的在线考试,使用 R/exams 函数编写exams2openolat()。我在问一个问题,如下所述(有 4 个不同的版本),学生必须输入一系列字母,例如J,、、、...FI

有没有办法让输入不区分大小写,以便大写字母(如上)和小写字母(即 , j, f, i...)都被接受为正确的?

i = sample(1:4, 1)

question = concat("...")
correct = c("J,F,I,B,Z,M,L,X,A,C,Q", "N,T,E,Y,Z,H,M,L,A,C,Q", "A,T,L,R,Z,V,C,E,H,M,Q", "P,I,W,J,Z,D,Q,X,E,S,M")
...
answertypes = paste(replicate(11, "string"), collapse = "|")
answerlist = sprintf("%s:",seq(1,11))
exsolution = gsub(",", "\\|", correct[i])
solutionlist = strsplit(gsub(",", "", correct[i]), "")[[1]]

标签: rr-exams

解决方案


谢谢你的建议。此选项在 OpenOlat 和用于交换的 QTI 2.1 XML 格式中可用 - 但是,到目前为止,它不被exams2openolat()底层exams2qti21()函数支持。我现在已将此添加到 R-Forge 上的 R/exams (2.4-0) 的当前开发版本中。所以现在你可以做

exams2openolat(..., casesensitive = FALSE)

默认仍然是TRUE. 作为一个工作示例,您可以考虑

exams2openolat(expar("function.Rmd", i = 8), casesensitive = FALSE)

这会选择具有正确答案的函数练习的八个可用随机版本之一logLik(注意中间的大写 L)。使用该选项,包括、、 或在内的casesensitive = FALSE任何其他情况也被认为是正确的。loglikLOGLIKLoGlIk

要从 R-Forge 安装软件包的当前开发版本,您可以使用:

install.packages("exams", repos = "https://R-Forge.R-project.org")

推荐阅读