【问题标题】:How to source() an external R script using Quarto?如何使用 Quarto 获取()外部 R 脚本?
【发布时间】:2023-02-02 04:00:08
【问题描述】:

我正在试用四开本并将我的 Rmarkdown 文件“转换”为四开本文档。在我的旧 Rmarkdown 文件中,我会使用 source("R_datacleaning.R")source("R_Functions.R") 来运行数据清理并加载一些功能。我也试过 source(here("R_Functions.R")) 但它也不起作用。 R 脚本和 qmd 文件位于同一目录中。

我似乎无法让它在 .qmd 中工作。我得到的错误是Error: RStudio not running。我四处搜索并查看了 Quarto 文档,但找不到与此相关的任何内容。我认为我可能对 RStudio 中的 Quarto 环境不了解。将不胜感激任何帮助,谢谢!

编辑:

---
title: "quarto_test2"
format: html
---

```{r}
library(here)

source(here("R_Functions.R"))
```

错误信息是:

processing file: quarto_test2.qmd
  |..........                                                            |  14%
  ordinary text without R code

  |....................                                                  |  29%
label: unnamed-chunk-1
Quitting from lines 7-10 (quarto_test2.qmd) 
Error: RStudio not running

Execution halted

如前所述,R_Functions.Rquarto_test2.qmd 位于同一目录中。

版本信息

  • RStudio 版本为2022.07.2
  • R 版本4.2.0
  • 四开版1.1.245

【问题讨论】:

  • 请提供一个最小的可重现示例,该示例不适用于您的情况并给出错误。还包括您使用的quarto 和 Rstudio 版本的信息。
  • 我觉得不需要包含 reprex,因为我很确定这不是我的代码的问题,但是 source() 函数在 .qmd 中不起作用。可能是目录问题,或者是 knitr 的问题,我不明白。无论如何,如果你真的想要一个,我仍然会用一个 reprex 更新主要帖子。
  • 是的,请做。包含一个代表总是一个更好的主意,即使它看起来微不足道(因为对你来说似乎微不足道的东西,对其他人来说可能不是)。无论如何,我已经在 qmd 文件中多次使用 source() 并且到目前为止没有遇到任何问题:)
  • 谢谢,我已经添加了代表。我看到 Quarto 是在 R 版本 4.2.1 下构建的,但我的是 4.2.0。不确定是不是这样?你在 .R 文件上使用过 source() 吗? list.files() 正确指向我的目录并打印"quarto_test2.qmd""R_Functions.R" 此外,无论我是否包含here(),问题/错误都不会改变。
  • 是的。我在 R 文件上使用了source。顺便说一句,你的脚本R_Functions.R的内容是什么?

标签: r quarto


【解决方案1】:

我在pdf中取得了成功

---
title: "source() external R script in Quarto, in PDF"
format: 
  pdf:
    toc: true # table of contents
---

一些文字...

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

一些文字...

【讨论】:

    猜你喜欢
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多