繁体   English   中英

在 .Rprofile 和 .Renviron 中设置 R 的默认行为。 了解在何处做什么

[英]Setting R's default behaviour in .Rprofile and .Renviron. Understanding what to do where

我试图了解文件 .Renviron 和 .Rprofile 的使用。 如果我理解正确的话, .Rprofile是一种启动脚本,来源于 R 代码,它设置用户可能一直想要的选项和环境变量,或者用于特定项目。 另一方面, .Renviron在 .Rproject 之前加载,并且仅定义环境变量。

根据设计,我知道 R 将加载用户或项目级别的 .Renviron 和 .Rprofile 文件,但它不会同时加载用户和项目级别的文件。 本质上,R 只会加载项目特定的 .Rprofile 和 .Renviron 文件,前提是它们被定义。 也就是说,将一些库和函数放在用户级别 .Rprofile 中是明智的,因为我几乎一直都需要它(例如,我dplyr使用dplyr语法),同时我想加载项目特定的库和函数。

.Renviron 文件的目的对我来说更难以捉摸。 据我了解,它的目的是存储环境变量,比如密码、API密钥等 但是,我也可以使用Sys.setenv()在 .Rprofile 中设置环境变量。 例如,我在项目的 .Rprofile 中设置了环境变量,以将并行化与以下包一起使用:

Sys.setenv(OMP_NUM_THREADS=parallel::detectCores())
library(OpenMx)

由于 .Renviron 不使用代码,我的假设是我可以使用以下语法将此行放在 .Renviron 文件中:

OMP_NUM_THREADS=[number of cores]

但是,我发现很少有关于如何在 .Renviron 中设置环境变量的有用信息,以及建议放在这里的内容。

因此,我的问题是:

  1. 在项目中工作时,如何加载用户和项目级别的 .Renviron 和 .Rproject 文件?
  2. 我通常会在 .Renviron 中放入哪些环境变量? (任何关于如何设置变量的列表或教程将不胜感激。)
  3. 在哪些情况下,建议在 .Rprofile 中使用Sys.setenv()向 .Renviron 添加环境变量,反之亦然?

但是,我也可以使用 Sys.setenv() 在 .Rprofile 中设置环境变量。

“是的,但是”这些可以在标准 POSIX 行为下不会改变之前必须设置变量的运行过程。

我就像你试图通过~/.Rprofile (甚至整个机器的Rprofile.site )尽可能长的时间,但最终在.Renviron添加了一些东西

  • R_LIBS_USER改为""因为我不想在下面安装 ~
  • R_MAX_NUM_DLLS必须在这里
  • 加上一些服务代币
  • 加上一个reticulate选项
  • 加上R CMD check选项

所以在某些情况下,您实际上必须使用.Renviron (或Renvirob.site )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM