【发布时间】:2021-11-04 12:20:53
【问题描述】:
我正在尝试了解 .Renviron 和 .Rprofile 文件的用途。如果我理解正确的话,.Rprofile 是一种启动脚本,来源于 R 代码,用于设置用户可能一直需要的选项和环境变量,或者针对特定项目。另一方面,.Renviron 在 .Rproject 之前加载,并且只定义环境变量。
根据设计,我了解 R 将加载用户或项目级别的 .Renviron 和 .Rprofile 文件,但不会同时加载用户和项目级别的文件。本质上,R 只会加载项目特定的 .Rprofile 和 .Renviron 文件,前提是它们已定义。也就是说,将一些库和函数放入 user 级别 .Rprofile 是明智的,因为我几乎一直都需要它(例如,我经常使用 dplyr 语法),而在同时我也想加载项目特定的库和函数。
.Renviron 文件的用途对我来说更加难以捉摸。据我了解,它的目的是存储environment variables, such as passwords, API keys, etc.。但是,我也可以使用Sys.setenv() 在.Rprofile 中设置环境变量。例如,我在项目的 .Rprofile 中设置了环境变量,以使用以下包的并行化:
Sys.setenv(OMP_NUM_THREADS=parallel::detectCores())
library(OpenMx)
由于 .Renviron 不使用代码,我的假设是我可以使用以下语法将此行放入 .Renviron 文件中:
OMP_NUM_THREADS=[number of cores]
但是,我发现关于如何在 .Renviron 中设置环境变量的有用信息很少,以及在这里放什么是可取的。
因此我的问题是:
- 在项目中工作时,如何同时加载用户和项目级别的 .Renviron 和 .Rproject 文件?
- 我通常会在 .Renviron 中放入哪些环境变量? (任何关于如何设置变量的列表或教程将不胜感激。)
- 在哪些情况下建议将环境变量添加到 .Renviron 而不是在 .Rprofile 中使用
Sys.setenv(),反之亦然?
【问题讨论】:
-
你看到
help(Startup)中的(很长,但很详细)的描述了吗?