背景
R/exams是为学生生成考试的一个很棒的工具。
问题
当数值练习具有较大的容差(extol
)时,将抛出错误:
Error in if (!is.null(extol) && any(extol < 0)) { :
missing value where TRUE/FALSE needed
这是一个错误还是我错过了什么?
最小的例子
下面是一个引发错误的最小练习:
Question
========
Some text
Solution
========
Some solution
```{r}
sol <- 1e4
sol_tol <- 1e4
Meta-information
exname: test-debug
extype: num
exsolution: r fmt(sol, 3)
extol: r sol_tol
我使用exams 2 html来呈现练习:
exams2html(file = "test-debug.Rmd",
edir = "exercises",
dir = "/.")
## 系统信息
检查2.4-0
1条答案
按热度按时间vc9ivgsu1#
您需要确保
exsolution
和extol
实际上都只包含数字。但是,根据scipen
选项,较大的数字可能会转换为包含科学记数法的字符串。在您的示例中,您通过在
exsolution
中使用fmt()
函数来避免使用科学记数法,但由于您没有在extol
中使用fmt()
,因此它将呈现为字符串而不仅仅是数字。该问题和相应的解决方案在以下文件中有更详细的说明:.Rmd练习文件中的round()函数出现问题
简而言之,要么确保
scipen
足够高,要么使用fmt()
这样的格式化程序,确保只将其输入显示为普通数字。