2014-12-27 235 views
4

我經常將R代碼嵌入到Rnw文件中,並使用knitr將Rnw文件轉換爲tex文件,然後轉換爲pdf。這種方法的優點是提高了重複性。缺點是它會中斷寫作流程。將R代碼的輸出插入到Rnw文件中

例如,假定下面的是一個研究論文的結果部分的一部分:和

我比較A組的裝置組B. A組的平均值爲 \Sexpr{mean(groupA)}。 B組的平均值爲\Sexpr{mean(groupB)}。 (以下兩句然後將兩個裝置在 上下文中,解釋兩個裝置的值,並解釋它們的差的大小的 相關性)

爲了將裝置在上下文中,解釋它們的價值並解釋它們差異的相關性,我需要能夠看到每個均值的實際值。但是如果不運行knitr將tex轉換爲pdf,然後再轉爲pdf,這會碎片並阻止寫入過程的流程,但我無法看到每個均值的值。

人們是否使用任何允許R代碼在Rnw文件中運行的方法。在上面的例子中,是否有一種方法可以顯示Rnw文件中每個均值的值,從而不會中斷寫入流?或者是否有任何解決方法?

+0

您不能將計算包含在未顯示的塊中嗎?如果您使用的是RStudio,那麼您可以運行該塊(或甚至相關的行)來查看結果。存儲的值可以在你的'Sexpr'中使用。 – A5C1D2H2I1M1N2O1R2T1 2014-12-27 16:45:17

+0

對不起,我不明白。你能稍微說一下嗎? – luciano 2014-12-27 16:49:10

回答

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} 

在撰寫文檔,你可以實際運行的塊(甚至還有一個用於「運行電流模塊」按鈕 - Ctrl鍵 + Alt鍵 + ç)或僅使用Ctrl鍵 + 輸入運行的特定行。輸出將顯示在控制檯中,允許您在編寫句子之前比較這些值,但不必完全編譯文檔。

+0

謝謝。這幾乎是我已經做的。假設我希望能夠將平均值的實際值自動插入到Rnw文件中。這可能要求太高了! – luciano 2014-12-27 17:25:07

+0

@luciano,我想我誤解了你的問題。它聽起來像是你在編譯PDF以便看到結果並編寫你的分析,而這隻涉及在仍然在Rnw編輯工作區中時運行相關的塊。 – A5C1D2H2I1M1N2O1R2T1 2014-12-27 17:27:49