Можно ли использовать use exams2pdf и получить решение точно такой же версии, сгенерированное с помощью exams2nops?

#r-exams

Вопрос:

При создании экзаменов с помощью функции exams2nops мы случайным образом генерируем данные для каждого из созданных экзаменов (скажем, 5 различных версий). Мы хотели бы использовать одну и ту же версию каждого экзамена для создания версии решений (с использованием exams2pdf ). Можно ли создать версию решения прямо на ходу при создании экзаменов с exams2nops помощью ? Под точно такой же версией я подразумеваю тот же порядок ответов с множественным выбором и те же неправильные значения (с использованием чудесной num_to_schoice функции). Мы сохраняем .rds объекты, используемые в каждом упражнении, что позволяет нам импортировать их при создании решений, однако неправильные параметры и порядок отличаются, так как они случайны. Должны ли мы также сохранить определенное начальное значение в .rds объекте? Внутри каждого упражнения у нас есть несколько случайно сгенерированных значений.

Ответ №1:

Когда вы задаете одно и то же случайное начальное значение перед вызовом exams2pdf() , и exams2nops() вы должны получить одинаковые случайные версии упражнений.

Иллюстрация: n = 2 вариант exm с 3 упражнениями.

 library("exams")
exm <- c("capitals.Rmd", "deriv2.Rmd", "tstat2.Rmd")
set.seed(1)
exm1 <- exams2pdf(exm, n = 2)
set.seed(1)
exm2 <- exams2nops(exm, n = 2)
 

Сравните список вопросов всех трех упражнений во второй случайной версии экзаменов:

 all.equal(exm1[[2]][[1]]$questionlist, exm2[[2]][[1]]$questionlist)
## [1] TRUE
all.equal(exm1[[2]][[2]]$questionlist, exm2[[2]][[2]]$questionlist)
## [1] TRUE
all.equal(exm1[[2]][[3]]$questionlist, exm2[[2]][[3]]$questionlist)
## [1] TRUE
 

Оба должны вызываться отдельно, хотя в настоящее время нет возможности создать оба за один раз.