使用\ Sexpr进行测试统计的标准化输出

时间:2014-02-19 08:58:34

标签: r automation latex output knitr

我尝试让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

我怎样才能教#34; LaTeX生成输出

r(54)=。37,p < 0.01

无需编写

$r(\Sexpr{mycor$parameter)=\Sexpr{mycor$estimate}$, $p < .05$

一直在吗?

我想编写一个命令,为我报告的每个关联执行此操作。请注意,我希望能够自动将p = 0.004805转换为p <.01。

BTW:我试着用

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

但这不起作用......

提前谢谢! 本杰明

1 个答案:

答案 0 :(得分: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)}按您的意愿工作。