如何将外部文件中的 R 代码片段包含到 Quarto 文档中

7

想知道如何将外部文件中的片段代码包含到文档中。

  1. 以下代码使用 knitr::read_chunk() 可以正常工作,但是需要依赖

    knitr::read_chunk("Ch02.R")
    
  2. 以下代码使用 代码可以运行而不出现任何错误,但是结果与预期不符。

    #| eval: true
    #| output: false
    #| file: Ch02.R
    

想知道在中是否有任何替代knitr :: read_chunk()的方法。

3个回答

7

选项1:包含

如果您想要包含其他代码片段,使用包含时只能使用 qmd 文件:

计算包含仅在 .qmd 文件中工作

让我们创建一个名为create_dataframe.qmd的简单 qmd 文件,它将向 mtcars 添加一列:

---
title: "Create dataframe"
---

```{r}
# Create data file 
mtcars$new_col = sample(c(0,1), nrow(mtcars), replace = TRUE)
```

现在你可以像这样在你的 main.qmd 文件中包含那个文件:

---
title: "Document"
---

{{< include create_dataframe.qmd >}}

Let's check if extra columns is created:

```{r}
# View dataframe
head(mtcars)
```

输出:

enter image description here

正如您所看到的,create_dataframe.qmd 文件中创建的列现在已经在您的主文件中了。


选项2:分块文件

您也可以在代码块中使用file选项。您必须确保使用eval来评估代码,就像这样:

---
title: "Document"
---

Let's check if extra columns is created:

```{r}
#| echo: true
#| eval: true 
#| file: create_dataframe.R
```

```{r}
# View dataframe
head(mtcars)
```

输出:

enter image description here

正如您所看到的,新列也在数据框中。


谢谢您的帮助。从您的回答中我了解到,knitr::read_chunk("Ch02.R")只是将外部文件中的R代码片段包含到 Quarto 文档中的一种解决方案。 - MYaseen208
嗨@MYaseen208,请查看我的编辑答案,另有一种选择! - Quinten

1

您可以使用source来运行有效的R代码,也可以使用file将脚本作为块包含并进行评估。

---
title: "Untitled"
format: html
---

## Include will interpret the content as markdown:

{{< include Chu1.R >}}


## Source will evaluate:

```{r}
#| echo: false
source("Chu1.R")
```


##  file will echo and evaluate

```{r,file = "Chu1.R"}

```

enter image description here


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接