2014-03-31 118 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