更改 exams2moodle() 函数中问题的默认标点符号
Changing the default punctuation of the questions in `exams2moodle()` function
我想使用 exams2moodle()
函数生成一堆带有选择题的考试。每个问题将有 4 个备选答案,其中只有一个正确答案。这很正常,但我想更改标记的默认行为。通常的行为是,如果你 select 正确答案,你得到 100%,如果你 select 3 个错误答案之一,你得到 -33%,但我想将其更改为 100%,但 -25 %。这可能吗?
谢谢
这不受官方支持。请注意,默认负分值为 1/#false 的原因是随机猜测的期望值为 0。您的建议仍然会有轻微的正期望值。
对于 exams2moodle()
(但不适用于所有其他界面),可以使用一种有点 hacky 的解决方法:
ee <- exams_eval()
ee$pointvec <- function(correct) {
if(is.logical(correct)) correct <- paste(as.integer(correct), collapse = "")
c(pos = 1, neg = -1/nchar(correct))
}
这产生:
ee$pointvec("1000")
## pos neg
## 1.00 -0.25
并且在 exams2moodle()
的情况下,$pointvec
是使用的评估策略的唯一部分。因此,您可以这样做:
exams2moodle(..., schoice = list(eval = ee))
导致期望的行为。
我想使用 exams2moodle()
函数生成一堆带有选择题的考试。每个问题将有 4 个备选答案,其中只有一个正确答案。这很正常,但我想更改标记的默认行为。通常的行为是,如果你 select 正确答案,你得到 100%,如果你 select 3 个错误答案之一,你得到 -33%,但我想将其更改为 100%,但 -25 %。这可能吗?
谢谢
这不受官方支持。请注意,默认负分值为 1/#false 的原因是随机猜测的期望值为 0。您的建议仍然会有轻微的正期望值。
对于 exams2moodle()
(但不适用于所有其他界面),可以使用一种有点 hacky 的解决方法:
ee <- exams_eval()
ee$pointvec <- function(correct) {
if(is.logical(correct)) correct <- paste(as.integer(correct), collapse = "")
c(pos = 1, neg = -1/nchar(correct))
}
这产生:
ee$pointvec("1000")
## pos neg
## 1.00 -0.25
并且在 exams2moodle()
的情况下,$pointvec
是使用的评估策略的唯一部分。因此,您可以这样做:
exams2moodle(..., schoice = list(eval = ee))
导致期望的行为。