运动教程到learnr包指的是checkr包:
查克包目前提供了与learnr兼容的代码检查功能。
(请注意,此引用会使而不是指向CRAN包查克。不幸的是,有一个重复的包名。)
但是在learnr教程中没有关于如何与checkr一起使用它的建议。另一方面,checkr中的vignette仍然是一个草案版本,讨论了一些高级问题,并且在learnr方面缺乏一个简单的例子。
我想要的是一个例子的具体程序。例如:如何使用two-plus-two示例检查学生输入,该示例由learnrR Markdown模板“交互式教程”提供。
因此,我的问题是:如何使用learnr来检查使用checkr包添加二加二所需的R代码?
也许这个问题应该使用新的标记(learnr和checkr),但我没有这样做的特权。
发布于 2018-06-10 09:57:15
经过多次实验,下列程序对我有效:
tutorial_options(exercise.checker = checkr::check_for_learnr)添加到"01-Exercises.Rmd“文件的安装块中。two-and-two-check的新R块。(=与学生任务的块名相同,但添加了-check。)check_two_and_two(USER_CODE),这将成为我的测试功能。rmarkdown::run("01-Exercises/01-Exercises.Rmd")。这是我的测试功能:
check_two_and_two <- function(USER_CODE) {
code <- for_checkr(USER_CODE)
t1 <- line_where(code, insist(all(F == "+"), "Your operator is {{F}}. This is not the assigned task."))
if (failed(t1)) return(t1)
t2 <- line_where(code, insist(all(V == 4), "Your solution is {{V}}. This is not the result (= 4) asked for."))
if (failed(t2)) return(t2)
line_binding(code, 2 + 2, failif(FALSE, "The pattern did not match."), message = "The result is correct, but I was looking for 2 + 2.")
}即使这对我有用:也许有一个更好(更有效)的解决方案?
https://stackoverflow.com/questions/50782349
复制相似问题