Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
exams2pdf()中的问题顺序与R/exams中的不同_R_R Exams - Fatal编程技术网

exams2pdf()中的问题顺序与R/exams中的不同

exams2pdf()中的问题顺序与R/exams中的不同,r,r-exams,R,R Exams,我正在使用R软件包考试。我试图用R/考试生成完全相同的考试的四个版本,但每个版本的问题顺序不同。另外,我想完全控制订单。例如,如果我有四个问题(1-2-3-4),我想生成版本:(2-3-1-4),(3-1-4-2),(2-1-3-4),(1-4-2-3)。以下是我可以使用的代码: base.order = list("tstat2.Rmd","Cholesky.Rmd","boxhist.Rmd","confint.Rmd") order1 = base.order[c(2,3,1,4)] or

我正在使用R软件包
考试
。我试图用R/考试生成完全相同的考试的四个版本,但每个版本的问题顺序不同。另外,我想完全控制订单。例如,如果我有四个问题
(1-2-3-4)
,我想生成版本:
(2-3-1-4)
(3-1-4-2)
(2-1-3-4)
(1-4-2-3)
。以下是我可以使用的代码:

base.order = list("tstat2.Rmd","Cholesky.Rmd","boxhist.Rmd","confint.Rmd")
order1 = base.order[c(2,3,1,4)]
order2 = base.order[c(3,1,4,2)]
order3 = base.order[c(2,1,3,4)]
order4 = base.order[c(1,4,2,3)]
set.seed(1322)
exams2pdf(order1,template="exam")
set.seed(1322)
exams2pdf(order2,template="exam")
set.seed(1322)
exams2pdf(order3,template="exam")
set.seed(1322)
exams2pdf(order4,template="exam")

问题是同一个问题在不同版本中使用了不同的数字。如何解决这个问题?

对于使用R/exams中的
exams2pdf()
生成同一考试的不同版本,最简单的解决方案是使用不同的模板。要解决订购问题,您可以更换

%% \exinput{exercises}
使用
\input{}
语句进行所需练习,例如

\input{exercise2}
\input{exercise3}
\input{exercise1}
\input{exercise4}
最初,我们引入此功能是为了允许在某些练习或进一步的特殊格式之间使用文本。但它也可以用于更改顺序。在 我创建了一个.zip文件,其中包含四个版本的纯
.tex
文件(a-D),它们具有不同的所需顺序。有了它,您可以:

base.order <- list("tstat2.Rmd","cholesky.Rmd","boxhist.Rmd","confint.Rmd")
exams2pdf(base.order,
  template = c("plainA", "plainB", "plainC", "plainC", "plainD"))

base.order这个问题的另一个解决方案是通过今天在R-Forge上增加R/Tests的开发版本来实现的。它可以通过
install.packages(“检查”,repos=”安装http://R-Forge.R-project.org)

新版本允许提供练习
文件
s矩阵,其中行对应于不同的考试,列对应于考试中所需的准确练习顺序。此外,可以提供在处理相应练习之前立即设置的随机
种子
的对应矩阵。通常,种子在不同的考试中会有所不同,但是,当然,这也可以用于修复种子,使其在不同的考试中保持一致

首先,我们定义练习向量和期望排列矩阵:

exc <- c("tstat2.Rmd","cholesky.Rmd","boxhist.Rmd","confint.Rmd")
idx <- rbind(c(2, 3, 1, 4), c(3, 1, 4, 2), c(2, 1, 3, 4), c(1, 4, 2, 3))
与使用四种不同模板生成单个考试的其他答案相比:

  • 显然,
    exams2pdf()
    包含在相应的元信息中,有四种不同的考试,它们的练习顺序不同
  • 考试中的练习完全相同这一事实只是通过种子相同这一事实隐式存储的

你想做什么?请用哪种编程语言提供详细信息。很抱歉,这是我关于堆栈交换的第一个问题。这个问题与R包考试有关(另请参阅)。@francis很抱歉在这里忽略了这一点……并且只在R-Forge()上的R/考试论坛上回答。为了将问题标记为已解决,我将在这里发布我的答案。如果这不能(完全)解决问题,请告诉我。
set.seed(1)
rsd <- sample(1:9999, 4)
exc <- exc[idx]
rsd <- rsd[idx]
dim(exc) <- dim(rsd) <- dim(idx)
exc
##      [,1]           [,2]          [,3]           [,4]          
## [1,] "cholesky.Rmd" "boxhist.Rmd" "tstat2.Rmd"   "confint.Rmd" 
## [2,] "boxhist.Rmd"  "tstat2.Rmd"  "confint.Rmd"  "cholesky.Rmd"
## [3,] "cholesky.Rmd" "tstat2.Rmd"  "boxhist.Rmd"  "confint.Rmd" 
## [4,] "tstat2.Rmd"   "confint.Rmd" "cholesky.Rmd" "boxhist.Rmd" 
rsd
##      [,1] [,2] [,3] [,4]
## [1,] 8004 4775 1017 9725
## [2,] 4775 1017 9725 8004
## [3,] 8004 1017 4775 9725
## [4,] 1017 9725 8004 4775
library("exams")
exams2pdf(exc, seed = rsd, template = "exam.tex")