【发布时间】:2021-01-20 12:23:32
【问题描述】:
R 的相对新手,想知道以下场景的最佳实践(或实用建议)。我有一个类似于以下的目录结构,其中包含一些需要拉入的 R 脚本和数据:
~/project/
├───src/
│ ├───01_metrics.R
│ ├───02_other.R
├───data/
│ ├───some_data.db
│ ├───some_other_data.tsv
├───output_plots/
...
在 R 脚本中,我使用以下方法提取数据:
library(tidyverse)
conn <- DBI::dbConnect(RSQLite::SQLite(), "../data/some_data.db")
sometable <- tbl(conn, "sometable")
这假设当我运行Rscript ./01_metrics.R 时,我是从src 目录中执行的。有时我会忘记并无意中从父文件夹 (Rscript src/01_metrics.R) 运行它。
有没有更健壮的方法来编码 R 脚本中的 data 和 output_plots 目录的路径?为了可移植性,我不热衷于在完整路径中编写代码。我可以在每个脚本的开头调用setwd(),但我想知道这是否是最好的解决方案。
其他人会怎么做,因为这不可能是一个小众问题?
PS:我没有使用 RStudio(我更喜欢 vim);我知道可以为 Rproj 设置基本目录。
【问题讨论】:
-
你可以查看“这里”包,
-
谢谢,这看起来是最好的解决方案。愿意将其发布为答案,我可以将其标记为已接受?
标签: r