在RStudio中,是否可能从R markdown(.Rmd)调用外部的R脚本?

11

按照这个 R Sweave 示例,加载外部 R 脚本相当简单:

<<external-code, cache=FALSE>>=
read_chunk('foo-bar.R')
@

同样的事情能否应用于 R Markdown?


据我所知,这个具体问题以前没有被回答过,而且由于我知道答案,我被鼓励自己回答。 - opyate
一次或许可以,两次就会引起怀疑。 - Dirk Eddelbuettel
7
为什么会有怀疑呢?SO是一个鼓励自问自答的问答网站。如果有人提出问题、在SO上进行搜索却找不到答案,但是通过自己的研究找到了答案,那么我们应该高兴地看到他们回到这里并提供答案,以便其他有类似问题的人后来也能受益。 - Dan Midwood
@DanMidwood,这是可疑的行为,因为在这两种情况下,它只是直接复制帮助文件或作为帮助的网站上的示例。 - mnel
1个回答

16
是的。
将此放在您的R Markdown文件顶部:
```{r setup, echo=FALSE}
opts_chunk$set(echo = FALSE, cache=FALSE)
read_chunk('../src/your_code.R')
```

请使用以下提示符号(就像@yihui在示例中所做的那样)来分隔您的代码:knitr

## @knitr part1
plot(c(1,2,3),c(1,2,3))

## @knitr part2
plot(c(1,2,3),c(1,2,3))

在您的 R Markdown 文件中,现在可以内嵌评估片段:

Title
=====

Foo bar baz...

```{r part1}
```

More foo...

```{r part2}
```

抱歉,@opyate,你知道是否可以使用多个单词的提示(例如 # @knitr part one)吗?经过一些测试,我认为这是不可能的,但也许我只是漏掉了什么... - A S
我目前没有设置来测试这个建议,但是尝试将它们放在两行上? - opyate
让我澄清一下:# @knitr part 然后在下一行写上 # @knitr one - opyate
抱歉,不行:)(尝试了不同的引号,结果都一样。) - A S
唯一避免这种情况的解决方案似乎是先读取文件,以某种方式使用 sub,仅为编织生成临时文件,然后 read_chunk 该临时文件,进行编织,最后删除临时文件。 - A S
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接