R/exams数值题型设置大extol容差触发报错问题咨询
背景
R/exams是一款实用的学生试卷生成工具。
问题
为数值题型设置较大容差(extol)时,触发以下报错:
Error in if (!is.null(extol) && any(extol < 0)) { : missing value where TRUE/FALSE needed
这是软件bug还是操作疏漏?
最小复现示例
触发报错的最简习题代码如下:
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
调用以下代码渲染习题: ```r exams2html(file = "test-debug.Rmd", edir = "exercises", dir = "./")
系统信息
exams 2.4-0
问题分析与解答
这是exams 2.4-0版本的软件bug,并非操作疏漏。
报错根源在于:当extol的数值与exsolution的数值相等时,软件内部的容差处理逻辑出现异常,导致extol被错误解析为NA值。后续检查extol < 0时,NA值无法生成有效的TRUE/FALSE判断,从而触发该报错。
临时解决办法
- 调整
extol的值,使其略小于exsolution的数值(例如将sol_tol <- 1e4改为sol_tol <- 9999.999); - 升级至exams的最新版本(该bug在后续版本中已被修复)。
内容的提问来源于stack exchange,提问作者Sebastian Sauer
相关产品推荐
相关产品推荐

