【发布时间】:2019-03-27 02:44:12
【问题描述】:
好的,所以我喜欢在 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 项目的全部目的。
【问题讨论】:
-
我不确定我是否理解。
Rscript与 RStudio 或 RStudio 项目无关。如果您从特定目录调用脚本,除非另有说明,否则该目录将是它查找文件的根目录(因为您不提供绝对路径)。在你的情况下,你从你的主目录调用Rscript,所以这是 R 寻找"test.RData"的地方。 -
对不起,应该在问题中更清楚地说明这一点。是的,我从主目录调用脚本,但脚本位于 ~/test 中,并且数据是从脚本中加载的。也许我只是对 R 项目是什么以及应该如何使用它感到困惑
-
是的,我理解您的所作所为,正如我在第一条评论中解释的那样,行为符合预期。 RStudio 项目与 R 本身无关。如果你设置了一个 RStudio 项目,它将(除其他外)创建一个带有 RStudio 特定参数的元文件。正如您已经指出的那样,如果您从不同的目录调用 R(或
Rscript),则需要使用setwd指定 工作目录。