我正在 R 中实施因子调查实验,我需要您的帮助来提高调查实施的速度。
在因子调查中,受访者被随机分配到 n 个场景的“牌组”,并要求受访者对每个场景(或“插图”)进行评分。每个场景由 k 个维度组成,其级别是随机分配的;此外,为了防止锚定效应,维度的顺序是随机的。R 非常适合定义因子级别,创建组合并组合字符串变量来表达各种插图。在我的实验调查中,我创建了一个列表文件:列表的每个元素都是一个因子级别的向量,表达场景。例如:
$308
[1] "Factor 1 - Level X"
[2] "Factor 4 - Level XX"
[3] "Factor 2 - Level X"
[4] "Factor 3 - Level XXX"
[5] "Factor 7 - Level XX"
[6] "Factor 5 - Level X"
[7] "Factor 6 - Level X"
为了使短篇故事的格式更美观,我还创建了一个 LaTeX 模板。该模板包括场景的简短(固定)介绍、项目符号列表和最后陈述。
我想知道是否可以将项目符号列表的每个项目与列表对象中的向量的各个元素关联起来。“复制+粘贴”解决方案在一定数量的可能组合中是不可行的,并且据我所知,当前用于获取 LaTeX 输入的 R 包大多是为表格输出而设计的。
我正在考虑的另一种方法是将列表对象保存在 R 环境之外,然后处理它。但我对这类任务没有任何能力。
如果有任何可能的解决方案,请告诉我。
答案1
很难理解你想要什么,但我猜knitr
加上去asis
可以让你输出动态调查。
在下面的例子中,您将有numRespondents
调查,每个调查都在单独的页面上:
\documentclass{article}
\begin{document}
\pagestyle{empty}
<<echo=FALSE>>=
vignettes=c("A", "B", "C", "D")
dimensions=c("i", "ii", "iii", "iv", "v", "vi")
vignettesPerRespondent=2
dimensionsPerVignette=3
numRespondents=1
@
<<results='asis',echo=FALSE>>=
for (i in (1:numRespondents)) {
v <- sample(vignettes, vignettesPerRespondent, replace=FALSE)
lapply(v, function (vignette) {
cat ("Consider vignette ", vignette, "\\par\n")
d <- sample(dimensions, dimensionsPerVignette,
replace=FALSE)
cat("\\begin{itemize}\n")
lapply(d, function(dimension) {
cat ("\\item ",
"Please estimate dimension ", dimension,
"\n")})
cat("\\end{itemize}\\par\n")
})
cat("\\clearpage\n")
}
@
\end{document}
使用Rscript -e "library('knitr'); knit('tmp.rnw')"
我得到一个自动生成的文件,tmp.tex
其中包含如下随机条目:
Consider vignette D \par
\begin{itemize}
\item Please estimate dimension ii
\item Please estimate dimension iv
\item Please estimate dimension i
\end{itemize}\par
Consider vignette A \par
\begin{itemize}
\item Please estimate dimension i
\item Please estimate dimension v
\item Please estimate dimension ii
\end{itemize}\par
\clearpage