gpt4 book ai didi

r - 如何获取 R Markdown 文件,例如 `source(' myfile.r')`?

转载 作者:行者123 更新时间:2023-12-03 05:19:41 25 4
gpt4 key购买 nike

我经常有一个主要的 R Markdown 文件或 knit LaTeX 文件,我在其中一些其他 R 文件(例如,用于数据处理)。然而,我认为在某些情况下,让这些源文件成为它们自己的可重现文档(例如,R Markdown 文件不仅包含数据处理命令,而且还生成解释数据处理决策的可重现文档)是有益的)。

因此,我希望在我的主 R Markdown 文件中包含一个类似 source('myfile.rmd') 的命令。这将提取并获取 myfile.rmd 的 R 代码块内的所有 R 代码。当然,这会产生错误。

以下命令有效:

```{r message=FALSE, results='hide'}
knit('myfile.rmd', tangle=TRUE)
source('myfile.R')
```

如果需要输出,可以省略其中results='hide'。即,knitr 将 R 代码从 myfile.rmd 输出到 myfile.R

但是,它似乎并不完美:

  • 这会导致创建一个额外的文件
  • 如果需要控制显示,它需要出现在自己的代码块中。
  • 它不像简单的 source(...) 那样优雅。

所以我的问题是:是否有更优雅的方式来获取 R Markdown 文件的 R 代码?

最佳答案

看来您正在寻找一句俏皮话。将其放入您的 .Rprofile 中怎么样?

ksource <- function(x, ...) {
library(knitr)
source(purl(x, output = tempfile()), ...)
}

但是,我不明白为什么您要 source() Rmd 文件本身中的代码。我的意思是 knit() 将运行本文档中的所有代码,如果您提取代码并以 block 的形式运行它,则当您 knit()< 时,所有代码将运行两次 这个文件(你自己在里面运行)。这两个任务应该是分开的。

如果您确实想运行所有代码,RStudio 已经使这变得相当简单:Ctrl + Shift + R。它基本上在幕后调用 purl()source()

关于r - 如何获取 R Markdown 文件,例如 `source(' myfile.r')`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com