首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.Rprofile和.Renviron中设置R的默认行为。明白在哪里该做什么

在.Rprofile和.Renviron中设置R的默认行为。明白在哪里该做什么
EN

Stack Overflow用户
提问于 2021-11-04 12:20:53
回答 1查看 539关注 0票数 0

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

通过设计,我理解R将加载用户或项目级别的.Renviron和.Rprofile文件,但它不会同时加载用户和项目级别的文件。本质上,R只会加载特定于项目的.Rprofile和.Renviron文件,前提是它们是定义的。尽管如此,有些库和函数在用户级.Rprofile中放置是谨慎的,因为我几乎一直都需要它(例如,我经常使用dplyr语法),同时我也想加载特定于项目的库和函数。

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

代码语言:javascript
复制
Sys.setenv(OMP_NUM_THREADS=parallel::detectCores())
library(OpenMx)

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

代码语言:javascript
复制
OMP_NUM_THREADS=[number of cores]

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

因此,我的问题是:

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

回答 1

Stack Overflow用户

发布于 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)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69839169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档