【问题标题】:using knit on markdown file but ignoring a chunk of code - sourcing knitr files在降价文件上使用 knit 但忽略了一大块代码 - 采购 knitr 文件
【发布时间】:2015-01-06 23:26:47
【问题描述】:

这类似于How to source R Markdown file like `source('myfile.r')`?,但有以下区别:我希望我的降价文件生成一个 R 脚本以供将来采购。上一个问题对直接获取降价文件感兴趣(目前这似乎并不容易)。

通过包含以下内容,可以编译生成可用源 R 文件的 .Rmd 降价文件:

```{r, ignore = TRUE, include = FALSE}
knit('markdown_file.Rmd', 'source_file.R', tangle = T)
```

这会创建一个完美的 source_file.R 但它最后包含 knit 调用。因此,当我在另一个脚本中source("source_file.R) 时,它会重新创建并覆盖自己,这似乎是一种不好的做法。有没有办法告诉knit 忽略 .Rmd 文件中的一段代码?

【问题讨论】:

  • 我不确定我是否理解这个问题。 eval=FALSE 不适用于这种情况吗?
  • eval = F 不起作用,因为没有调用 knit 并且没有创建 source_file.R 文件。我的目标是自动化一个过程,以便在编译 .Rmd 文件(到 pdf)时,会创建一个配套的 .R 源文件以供其他脚本使用。

标签: r rstudio knitr r-markdown


【解决方案1】:

我使用 bash 脚本解决了这个问题,并从 R 脚本中完全删除了 knit sn-p。

Rscript -e 'knitr::knit("markdown_file.Rmd", "source_file.R", tangle = T)'

因此,通过这种方法,我可以使用类似的 bash 脚本将我的 .Rmd 编​​入所需的文档输出(如 pdf,代码未显示),然后使用这行代码创建一个 R 文件,供以下人员使用其他 R 脚本。实际上,我不再需要在 Rmd 文件中(或在 RStudio 中)调用 knit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多