将R代码的输出插入Rnw文件

时间:2014-12-27 16:29:37

标签: r pdf latex knitr sweave

我经常将R代码嵌入到Rnw文件中,并使用knitr将Rnw文件转换为tex文件,然后转换为pdf。这种方法的好处是增加了再现性。缺点是它会中断写入过程的流程。

例如,假设以下是研究论文结果部分的一部分:

  

我比较了A组和B组的平均值.A组的平均值是   \Sexpr{mean(groupA)}。 B组的平均值为\Sexpr{mean(groupB)}。   (以下几句话将两种方式放入   语境,解释两种手段的价值并解释   相关的差异大小)

为了将手段置于上下文中,解释它们的价值并解释其差异的相关性,我需要能够看到每个均值的实际价值。但是,如果没有运行knitr转换为tex然后再转换为pdf,我无法看到每种方法的价值,这会破坏和抑制写入过程的流程。

人们是否使用任何允许R代码在Rnw文件中运行的方法。在上面的例子中,是否有一种方法可以显示Rnw文件中每个均值的值,从而不会中断写入流程?或者有任何解决方法吗?

1 个答案:

答案 0 :(得分:3)

如果您使用RStudio,您可以执行以下操作:

\documentclass{article}

\begin{document}

<<echo = FALSE, eval = TRUE, results='hide'>>=
# This is a code chunk that I want to ealuate and store variables in.
# I can "ctrl + enter" in here and actually run the calculations in 
# the console in RStudio.
set.seed(1)
A <- sample(300, 30)
B <- sample(200, 40)
mA <- mean(A);mA
mB <- mean(B);mB
@

I compared the means of group A and group B. The mean of group A was 
\Sexpr{mA}. The mean of group B was \Sexpr{mB}. 

\end{document}

在编写文档时,您实际上可以运行块(甚至还有一个“Run Current Chunk”按钮 - Ctrl + Alt + C < / kbd>)或者只使用 Ctrl + Enter 运行特定行。输出将显示在控制台中,允许您在编写句子之前比较值,但无需完全编译文档。