如何在Sweave中产生APA样式的统计输出?

时间:2019-01-31 13:06:54

标签: r sweave

我正在尝试找到一种方法来整合Sweave中apa R程序包的统计输出。

我需要使用ez软件包进行统计分析(因为我需要输入3类平方和)。这与Rmarkdown完美配合,但是我在Sweave中的输出格式存在问题。

\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}

\section*{Results}
<<echo=FALSE, results=hide>>=
library(knitr)
library(ez)
library(apa)

subject<- c(1:40)
reward<- rep(c("p", "s", "p", "s", "s", "p", "s", "p", "s", "p"), 4)
class<- rep(c("ST", "GT", "ST", "GT", "GT", "ST", "GT", "ST", "GT", "ST"), 4)
value<- runif(40, min=0, max=5)
df<- data.frame(subject, reward, class, value)
df$subject<- as.factor(df$subject)

analysis<- ezANOVA(data= df, dv=.(value), wid= .(subject),between = .(class), detailed= TRUE, type= 3)
apa.format<- apa(analysis, format= "text")
@

The results, \Sexpr{(apa.format[2,2])}, indicate...

\end{document}

它应该产生的结果是:
F (1,38)= 0.93, p = .341,ηp²= .02 我试图通过apa函数更改格式,并且每个输出都会产生不同的问题:
*乳胶:产生textit(并且不会使“ F”斜体或“ p”)
* markdown:使'*'而不是斜体。
*文本:不产生斜体或部分eta平方符号。
这可以在Rmarkdown中轻松实现,但是我还有很多其他问题。 有什么建议吗?这可能包括:用于Sweave中APA报告的不同程序包,用于集成Latex和Rcode(并使用程序包)的不同方法或对先前输出的修复。 谢谢!

1 个答案:

答案 0 :(得分:1)

\Sexpr宏似乎可以“吃掉” apa()放在输出中的反斜杠,因此您需要将它们加倍。因此,选择"latex"格式,然后将反斜杠加倍:

apa.format <- apa(analysis, format= "latex")
apa.format <- gsub("\\", "\\\\", as.matrix(apa.format), fixed = TRUE)

这将修复apa.format的所有条目,使其与\Sexpr兼容。 as.matrix是必需的,因为apa.format是一个小问题,它与gsub()不能很好地配合。 (我想您可以使用mutate或类似的方法来做同样的事情,如果您知道自己在做些小动作的话。我不知道。)

输出为

screenshot