【问题标题】:Include R script with markdown tags as external file in Rmarkdown file在 Rmarkdown 文件中包含带有 markdown 标签的 R 脚本作为外部文件
【发布时间】:2021-08-06 19:15:34
【问题描述】:

假设我有一个带有降价标签的 .R 文件 tmp.R,例如

#' # header    
5+1

我想将它作为外部源包含到(更大的).Rmd 文件中。 R 代码和降价标签应像直接渲染一样进行评估。我该怎么做?

---
title: "Untitled"
output: html_document
---

我尝试了几个选项,包括

```{r, results='asis'}
source("tmp.R")
```

```{r, results='asis'}
knitr::spin("tmp.R')
```

和其他几个。不幸的是,我在stackoverflow上没有找到解决方案,包括thisthisthisthisthis问题。

【问题讨论】:

  • 您的tmp.R-文件是什么样的?您的第一个选项应该有效,具体取决于您在 tmp.R 中编写代码的方式
  • 感谢您的快速回复。 tmp.R 文件是第一个代码垃圾。我用.Rmd 文件解释模具降价标签#' # header

标签: r r-markdown markdown knitr knitr-spin


【解决方案1】:

我不完全确定我是否理解您的问题,但听起来您正在寻找 knitr::spin_child(),它将 R 脚本转换为 Rmd 并将其编织为子文档:

```{r}
knitr::spin_child('tmp.R')
```

【讨论】:

  • 是的,我是。非常感谢!
【解决方案2】:

您需要将代码写入temp.R 文件中,以便可以直接在块中对其进行评估。

所以对于 tmp.R 使用:

cat("# header \n\n")
cat(4+3)

然后您可以将其包含在 R-Markdown 文件中:

```{r, results='asis'}
source("tmp.R")
```

【讨论】:

  • 哦,对了。实际上,我在类似的question 中偶然发现了那个。在这种情况下,我非常希望不必更改 R 脚本。我知道我将能够实现一种方法来相应地替换 #'#'+ 指示符之后的标签。我想知道是否已经有一个开箱即用的解决方案
猜你喜欢
  • 2011-10-30
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 2018-03-29
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多