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
。
我安装了 "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
。