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

How to produce APA style statistical output in Sweave?

我正在尝试找到一种方法来将 apa R 包的统计输出集成到 Sweave 中。

我需要使用 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 函数更改格式,但每个输出都会产生不同的问题:
* latex:生成 textit(它不会使 'F' 斜体或 'p')
*降价:使'*'而不是斜体。
* 文本:不产生斜体或部分 eta 平方符号。
这可以在 Rmarkdown 中轻松实现,但是我还有很多其他问题。 建议?这可能包括:Sweave 中用于 APA 报告的不同包、集成 Latex 和 Rcode(和使用包)的不同方式或对先前输出的修复。 谢谢!

\Sexpr 宏出现在 "eat" 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 或类似的东西做同样的事情,如果你知道你在用 tibbles 做什么。我不知道。)

输出是