2014-03-31 146 views
0

我有一個R Markdown文件,其中包含我的筆記和代碼塊。我現在想編寫一個R Sweave(Knitr)文檔來發布使用這些塊的論文。我不想剪切和粘貼大塊,而是直接給它們打電話。這樣,如果我更新大塊,我不必在兩個地方做。它似乎很簡單,但我無法弄清楚。我的代碼如下,test.rmd是我的標記文件,foo是rmd文件中的塊。在R Sweave(Knitr)中使用R Markdown塊

Test.rnw

<<Setup>>=== 
read_chunk('test.rmd') 
@ 
<<foo>>== 
@ 

Test.rmd

```{r foo, echo=TRUE} 
    print(summary(cars)) 
``` 

我會希望顯示在輸出test.rnw彙編成PDF汽車的摘要。但我不知道。任何幫助是極大的讚賞。

+1

你讀過幫助頁面? 「注意 該函數只能用於沒有被緩存的塊(塊選項cache = FALSE),並且代碼被讀取並存儲在當前會話中而不被執行(爲了實際運行代碼,必須使用一個帶有相應標籤的塊)「。 –

+1

我以爲這就是我所做的。默認情況下,cache = FALSE,我使用了一個帶有相應標籤的塊。我的chuck代碼被稱爲foo,我使用<> ==來調用它。也就是說,除非我完全錯過了這條船。 – tcalderwood

回答

0

read_chunk讀取從r腳本塊這樣稱呼purlread_chunk

<<Setup>>= 
knit_patterns$set(all_patterns[["md"]]) 
purl("test.Rmd") 
knit_patterns$set(all_patterns[["rnw"]]) 
read_chunk("test.R") 
@ 

<<foo>>= 
@ 
+0

當我從控制檯運行purl和read_chunk時,我用我的塊獲得一個R文件。然後我複製並將您的示例粘貼到我的rnw文件中。當rnw文件被編譯成PDF時,R文件被生成,但是是空的。我確定我的目錄設置正確,文件正在被purl讀入。所以,我爲什麼要得到一個空的R文件是一個失敗。 – tcalderwood

+0

您可能需要明確設置模式。查看已更新。 – kohske

+0

非常感謝你!它正是我所需要的。這將使我的學習和研究變得如此簡單。再一次,非常感謝你。 – tcalderwood