使用\Sexpr实现测试统计量的标准化输出

5

我尝试让Latex和knitr以标准化的\Sexpr{}输出统计数据。

例如:我计算了一个相关性:

mycor<-cor.test(a,b)

假设结果如下:
Pearson's product-moment correlation

data:  a and b
t = 2.9413, df = 54, p-value = 0.004805
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.1204668 0.5780293
sample estimates:
cor
0.3715985

如何让LaTeX生成输出?
而不需要编写以下内容:
r(54)= .37,p <.01
$r(\Sexpr{mycor$parameter)=\Sexpr{mycor$estimate}$, $p < .05$

一直这样吗?

我想编写一个命令,让它适用于我所报告的每个相关性。请注意,我要寻找一种让它自动将p = 0.004805转换为p < .01的可能性。

顺便说一下:我已经尝试过用以下方法实现:

\newcommand{\repcor}[1]{$r(\Sexpr{#1$parameter)=\Sexpr{#1$estimate}$}

但这并不起作用...

提前感谢! 本杰明

1个回答

5
为什么不直接编写一个函数来输出你想要的内容呢?例如,在文档开头加入以下代码:
<<echo=FALSE, tidy=FALSE>>=
trans = function(mycor) {

  out1 = paste0("$r(", mycor$parameter, ") = ", signif(mycor$estimate, 2), "$,")

  p = mycor$p.value
  cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1) 
  round_p = cut(p, cutpoints, labels=cutpoints[-1])
  p_value = paste0("$p < ", round_p, "$"  )

  paste(out1, p_value)
}
@

这将使得\Sexpr{trans(mycor)}按照您的要求正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接