你可能想使用{here}
包,它非常适用于在项目中处理文件路径。
假设我已经通过在Rstudio中依次执行文件 -> 新建项目 -> 新建目录 -> Quarto 项目
创建了一个quarto项目,并在其中创建了一些文件夹和文件。因此,我的当前项目结构如下:
$
│ test_proj.Rproj
│ _quarto.yml
│
├─-data
│ mtcars.csv
│
└─-scripts
delete.qmd
delete.qmd
调用mtcars.csv
文件,您可以执行以下操作。---
title: "Test File"
format: html
---
## Quarto
```{r reading-data}
df <- read.csv(here::here("data/mtcars.csv"))
```
here::here()
的文档,它将始终定位到与您的项目根目录相关的文件。因此,在以项目根目录(其中包含test_proj.Rproj
)为基础的思考中,您可以在qmd
或R-script
文件中将mtcars.csv
的路径写为"data/mtcars.csv"
,而无论脚本文件在哪里,因为您正在相对于固定的项目根目录调用csv文件。如需了解更多关于{here}
的信息,请参见此处。server: shiny
发布到 RStudio Connect? - Giovanni Colittidelete.qmd
保存在一个叫做scripts
的文件夹中,而这个scripts
文件夹是我的R项目的一部分。假设我正在处理delete.qmd
,并且我想通过编写read_csv("data/something.csv")
来调用位于名为data
的文件夹中的something.csv
文件,该文件夹也在我的项目目录中。我希望这样做。从我看到的情况来看,除非data
文件夹位于存储Quarto文件的同一文件夹中,否则不可能实现。 - Abdullah Abdelaziz---
title: "My Document"
format: html
knitr:
opts_knit:
root.dir: "c:/my/project/directory"
---
knitr::opts_knit$set(root.dir = '/path/to/dir')
... 有什么想法吗? - Dijkie85quarto::quarto_render(here::here("path_to/doc.qmd"),
execute_dir = here::here(),
output_format = "all", as_job = TRUE)
execute_dir
可以使文件路径正常工作。
here
包,它可以将所有路径都相对于项目根目录。 - Richard Telford