【问题标题】:How can I include an external RMD file in a Quarto qmd script without evaluating the external script?如何在不评估外部脚本的情况下将外部 RMD 文件包含在 Quarto qmd 脚本中?
【发布时间】:2023-02-02 16:18:14
【问题描述】:

我正在创建一个参考文档,其中包含来自各种 Rmd 文件的代码 sn-ps。

例如,我的第一个文件如下所示:

lm.Rmd:

---
title: Linear Models
---

# How to Run Linear Models

```{r}
lm(am ~ cyl + mpg, data = mtcars)
```

## Linear Model Results
...

# A New Linear Model
...

然后在第二个文件中(现在使用 Quarto qmd),我试图引用这个外部脚本并将其显示为原始 Rmd 代码,而不是 HTML 或 Markdown 输出。这是我正在尝试的:

reference.qmd:

---
title: Reference Document
---

# Linear Model Scripts

Here is the script we used for linear models:

```{r}
#| file: dir/lm.Rmd
#| eval: false
#| echo: true
#| code-folding: true
```

# More Scripts
...

我想要的是将原始 RMD/QMD 代码包含在最终 reference.qmd HTML 文档的“回显”代码框中。但是正在发生的事情是正在评估来自 lm.Rmd 文件的降价,并且正在显示,就像我直接在 reference.qmd 文档中写的一样。

最后,我想要的是能够显示任意外部脚本,并让最终用户能够在最终 HTML 输出(本例中为 QMD 书籍)中滚动浏览该脚本。 QMD 代码块中的 file: 选项似乎让我部分地在那里,因为它适用于 .R 文件,但它似乎不适用于 .Rmd 文件。

【问题讨论】:

    标签: r r-markdown quarto


    【解决方案1】:

    您可以使用 readLinescat 读取文件内容作为输出。然后使用 sourceCode r 类作为输出类,以获得样式为 R 代码块的输出。

    ---
    title: Reference Document
    ---
    
    ## Linear Model Scripts
    
    Here is the script we used for linear models:
    
    
    ```{r}
    #| echo: false
    #| warning: false
    #| class-output: "sourceCode r"
    
    cat(readLines("lm.Rmd"), sep = "
    ")
    ```
    
    ## More Scripts
    
    ```{r}
    #| echo: false
    #| warning: false
    #| class-output: "sourceCode r"
    
    cat(readLines("lm.R"), sep = "
    ")
    ```
    


    的内容lm.R

    model <- lm(am ~ cyl + mpg, data = mtcars)
    model
    

    【讨论】:

    • 惊人的。谢谢!你知道我在哪里可以阅读更多关于类输出选项的信息吗?
    • 好吧,我通过使用 Rmarkdown 和 quarto also has this 知道这个选项为 a knitr option。因此,如果您查看文档的底层 html 结构,您会看到 quarto 使用 sourceCode r 类作为代码块。所以这就是为什么我将它用于 class-output 以获得相同的效果。
    【解决方案2】:

    我使用此解决方案在 Quarto 和 pdf 中取得了成功:

    ```{r}
    #| echo: true
    #| eval: false # skip evaluation
    #| file: C:/directory/script.R
    ```
    

    见:https://stackoverflow.com/a/75315426/14361772

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 2019-07-30
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 2020-04-10
      • 2018-03-29
      相关资源
      最近更新 更多