我经常将R代码嵌入到Rnw文件中,并使用knitr
将Rnw文件转换为tex文件,然后转换为pdf。这种方法的好处是增加了再现性。缺点是它会中断写入过程的流程。
例如,假设以下是研究论文结果部分的一部分:
我比较了A组和B组的平均值.A组的平均值是
\Sexpr{mean(groupA)}
。 B组的平均值为\Sexpr{mean(groupB)}
。 (以下几句话将两种方式放入 语境,解释两种手段的价值并解释 相关的差异大小)
为了将手段置于上下文中,解释它们的价值并解释其差异的相关性,我需要能够看到每个均值的实际价值。但是,如果没有运行knitr
转换为tex然后再转换为pdf,我无法看到每种方法的价值,这会破坏和抑制写入过程的流程。
人们是否使用任何允许R代码在Rnw文件中运行的方法。在上面的例子中,是否有一种方法可以显示Rnw文件中每个均值的值,从而不会中断写入流程?或者有任何解决方法吗?
答案 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 运行特定行。输出将显示在控制台中,允许您在编写句子之前比较值,但无需完全编译文档。