如何总结和打印所有练习的要点?

How sum up and print points of all exercises?

我知道在 r-exam 我可以给练习分配分数,例如。通过 expoints 在练习的元数据中。但是,我不知道要获得所有练习的分数总和。

作为一个特定的用例:考虑一项测试(根据正规大学的要求)必须包含(比方说)90 分。因此,我需要通过测试练习跟踪已经包含的点数。

我不知道哪个变量跟踪这个分数(如果有的话)。

你是对的,此信息无法直接获得,但可以从任何 exams2xyz() 接口的输出中包含的元信息中提取。作为一个简单的例子,请考虑:

library("exams")
set.seed(0)
exm <- exams2pdf(c("swisscapital.Rmd", "deriv.Rmd", "ttest.Rmd"),
  n = 1, points = c(1, 17, 2))

现在 exm 是一个只有 n = 1 个考试的列表,由三个练习组成,每个练习都提供其元形式(以及其他细节)。因此,您可以通过以下方式提取第一次(也是唯一一次)考试中第二次练习的分数:

exm[[1]][[2]]$metainfo$points
## [1] 17

所以第一次考试所有练习的分数:

sapply(exm[[1]], function(y) y$metainfo$points)
## exercise1 exercise2 exercise3 
##         1        17         2 

当然,这里 points 是在 exams2pdf() 中明确设置的,因此是已知的。但如果在个别练习中通过 expoints 标签设置点,也可以使用相同的方法。