我正在努力理解.Renviron和.Rprofile文件的使用。如果我正确理解的话,.Rprofile是一个启动脚本,来源于R代码,它设置用户可能一直想要的选项和环境变量,或者是特定项目的选项和环境变量。另一方面,.Renviron是在.Rproject之前加载的,并且只定义环境变量。
通过设计,我理解R将加载用户或项目级别的.Renviron和.Rprofile文件,但它不会同时加载用户和项目级别的文件。本质上,R只会加载特定于项目的.Rprofile和.Renviron文件,前提是它们是定义的。尽管如此,有些库和函数在用户级.Rprofile中放置是谨慎的,因为我几乎一直都需要它(例如,我经常使用dplyr语法),同时我也想加载特定于项目的库和函数。
对于我来说,.Renviron文件的目的更加难以捉摸。据我所知,它的目的是存储环境变量,如密码、API密钥等。。但是,我也可以使用.Rprofile使用Sys.setenv()设置环境变量。例如,我在项目的.Rprofile中设置了环境变量,以便在下面的包中使用并行化:
Sys.setenv(OMP_NUM_THREADS=parallel::detectCores())
library(OpenMx)由于.Renviron不使用代码,我的假设是我可以使用以下语法将这一行放在.Renviron文件中:
OMP_NUM_THREADS=[number of cores]但是,我发现很少有关于如何在.Renviron中设置环境变量的有用信息,以及在这里放置什么是明智的。
因此,我的问题是:
Sys.setenv()向.Rprofile添加环境变量,反之亦然?发布于 2021-11-04 12:30:13
但是,我也可以使用.Rprofile ()在Sys.setenv()中设置环境变量。
“是的,但是”在标准POSIX行为下,这些操作不会改变之前必须为其设置变量的运行过程。
我就像你试着用~/.Rprofile (甚至是整个机器的Rprofile.site )尽可能长时间地过活,但最终在.Renviron中添加了一些东西
R_LIBS_USER到"",因为我不希望安装在~下面。R_MAX_NUM_DLLS必须在这里reticulate选项R CMD check选项因此,在某些情况下,您实际上必须使用.Renviron (或Renvirob.site)。
https://stackoverflow.com/questions/69839169
复制相似问题