Sourcing in Rprofile.site:如何找到源文件的位置

Sourcing in Rprofile.site: How to find the location of the sourced file

我安装了 "copy deployed" R,但没有设置特定于 R 的环境变量。

我想从 Rprofile.site:

中获取文件
source("how/to/find/this/file/my_settings.R")

我可以将 my_settings.R 文件放在哪里,以便无论 Rprofile.site 安装在哪个路径,都可以在 Rprofile.site 中找到它?

顺便说一句:我想避免使用 my_settings.R 的绝对路径,这确实可行。我更愿意使用与 Rprofile.site 相同的文件夹或相对于它的路径来支持 R 的复制部署。

编辑 1:问题是 getwd 总是不同,具体取决于您启动 R

的当前文件夹

如果您不能使用绝对路径并且您的工作目录不稳定,一种方法是使用 .libPaths.Library.

默认情况下,您的 Rprofile 应该在目录 paste0(.Library,"/../etc/")paste0(.libPaths()[2],"/etc/") 中,这样您就可以将文件放在那里并使用:

source(paste0(.Library,"/../etc/my_settings.R")) 
source(paste0(.libPaths()[2],"/etc/my_settings.R")) 

据我了解第一个选项是稳定的(我不认为可以更改 .Library 的值)。

如果您使用第二个选项,请确保如果将来您更改 .libPaths(),请在获取文件后进行更改。

有关默认文件夹的详细信息,请参阅 ?.libPaths