首页 > 解决方案 > 采购 R 项目中的 R 文件并维护相对路径

问题描述

好的,所以我喜欢在 Rstudio 中使用 R 项目来处理我正在使用的脚本和数据。但是,假设我想在另一个目录中获取这些脚本...R 不会检测到 .Rproj 文件,除非从它所在的目录调用该脚本。有没有办法从另一个目录获取属于 R 项目一部分的 R 脚本?

这是相关的,因为我有一个系统,我在一个目录中执行分析并制作图形,然后生成在另一个目录中使用这些图形的 LaTeX 文档。我希望能够获取制作图形的 R 脚本并将它们保存到我用 LaTeX 编写的目录中。

这是一个MRE:

已经在目录中创建了一个 R 项目(通过 Rstudio 完成)......让我们称之为 ~/test.

创建一些数据:

a <- 1:10
dat <- data.frame(a = a, b = a + rnorm(length(a), 10, 2))
save(dat, file = "test.RData")

将以下脚本放入 ~/test. 我们称之为 test.R。

load("test.RData")

pdf(file = "plot.pdf")
plot(b ~ a, data = dat)
dev.off()

效果很好,对吧?但是,如果我们从任何其他目录尝试以下操作,R 就无法弄清楚。

cd ~
Rscript ~/test/test.R

有什么深思熟虑的解决方案吗?我想只setwd()在我从中获取原始脚本的脚本中就很容易了,但这违背了使用 R 项目的全部目的。

标签: rrscript

解决方案


您可以setwd("~/test/")在脚本的开头使用,如有必要,稍后再将其更改。


推荐阅读