首页 > 解决方案 > 从 R/exams 中所有生成的考试中生成答案 excel

问题描述

我是根特(比利时)大学学院的教授,我们正在就考试的组织、研究技术(相当多的统计数据)进行头脑风暴。我们正在考虑为所有学生生成单独的考试,但我们想让评分尽可能容易。

我们正在考虑生成 n 次考试,使用 R-exams 并允许学生使用谷歌表格/OneDrive 表格或任何平台来回答,以生成包含学生答案的 excel。尽管每个问题的答案类型相同,但每个答案向量的内容会有所不同。

如果我们可以生成一个包含每个生成考试的所有答案的答案 Excel 表,那就太棒了:这样我们只需将学生提供的答案与 R-exams 生成的答案相除。这样的功能是否可用或可能?

亲切的问候

延斯·布赛

标签: rr-exams

解决方案


您正在寻找的功能在 R/exams 中并不容易获得,但编写一些将它们组合在一起的代码并不难。

所有exams2xyz()界面都返回一个考试列表,其中包含一个练习列表,其中包含(除其他外)每个问题的元信息。您可以将其提取并放入 Excel 工作表中。

您还可以使用exams_metainfo()提取器在 R 中显示信息。

作为一个简单的例子,考虑:

library("exams")
set.seed(0)
exm <- exams2html(c("swisscapital.Rmd", "deriv.Rmd"), n = 3)

现在exm是 n = 3 个考试的列表,每个考试包含 2 个练习,然后可以从中提取元信息。例如对于第一次考试的第一个练习:

exm[[1]][[1]]$metainfo$name
## [1] "Swiss Capital"
exm[[1]][[1]]$metainfo$solution
## [1] FALSE FALSE FALSE TRUE FALSE
exm[[1]][[1]]$metainfo$string
## [1] "Swiss Capital: 4"

要在 R 中显示此信息:

exams_metainfo(exm)
## exam1
## 1. Swiss Capital: 4
## 2. derivative exp: 55.25 (55.24--55.26)
## 
## exam2
## 1. Swiss Capital: 2
## 2. derivative exp: 1.79 (1.78--1.8)
## 
## exam3
## 1. Swiss Capital: 4
## 2. derivative exp: 46.73 (46.72--46.74)

您也可以通过以下print()方法仅获得一项考试:

print(exams_metainfo(exm), 2)
## exam2
## 1. Swiss Capital: 2
## 2. derivative exp: 1.79 (1.78--1.8)

推荐阅读