【问题标题】:Is it possible to call external R script from R markdown (.Rmd) in RStudio?是否可以从 RStudio 中的 R markdown (.Rmd) 调用外部 R 脚本?
【发布时间】:2013-01-25 15:09:23
【问题描述】:

按照this R Sweave example 加载外部 R 脚本相当简单:

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

R Markdown 也可以这样做吗?

【问题讨论】:

  • @DirkEddelbuettel AFAIK,这个具体问题之前没有得到回答,既然我知道答案,I am encouraged to self-answer
  • 一次,也许吧。两次,变得可疑。
  • @DirkEddelbuettel 为什么可疑? SO 是一个问答网站,鼓励您回答自己的问题。如果有人有问题,搜索 SO 并找不到答案,但通过他们自己的研究找到了答案,那么我们应该很高兴他们回到这里为以后有相同问题的其他人提供答案。
  • @DanMidwood,这是一种可疑的行为,因为在这两种情况下,它只是直接复制了帮助文件,或者作为帮助的网站中的示例。

标签: r knitr rstudio r-markdown


【解决方案1】:

是的。

把它放在你的 R Markdown 文件的顶部:

```{r setup, echo=FALSE}
opts_chunk$set(echo = FALSE, cache=FALSE)
read_chunk('../src/your_code.R')
```

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

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

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

在您的 R Markdown 文件中,您现在可以在线评估 sn-ps:

Title
=====

Foo bar baz...

```{r part1}
```

More foo...

```{r part2}
```

【讨论】:

  • 对不起,@opyate,你知道吗,是否可以使用多词提示(如# @knitr part one)?经过一些测试,我认为这是不可能的,但可能我只是错过了一些东西......
  • 我目前还没有准备好测试这个建议,但是试着把它们放在两个单独的行上?
  • 什么意思?将另一个单词放在另一行上是没有问题的。但是在我看来,knitr 只能识别一个词......(关键是我的文件中已经有 cmets 将该文件分成多个部分。为了不增加实体,我还想重新使用那些现有的 cmets与knitr ...但不幸的是,这似乎不起作用:))。
  • 让我澄清一下:# @knitr part 然后在下一行# @knitr one
  • 只是为了清楚起见:不,这也不起作用。无论如何,感谢您的支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
  • 1970-01-01
  • 2022-12-10
  • 2013-06-07
相关资源
最近更新 更多