【问题标题】:Setting R's default behaviour in .Rprofile and .Renviron. Understanding what to do where在 .Rprofile 和 .Renviron 中设置 R 的默认行为。了解在哪里做什么
【发布时间】: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 中设置环境变量的有用信息很少,以及在这里放什么是可取的。

因此我的问题是:

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

【问题讨论】:

  • 你看到help(Startup)中的(很长,但很详细)的描述了吗?

标签: r rprofile renviron


【解决方案1】:

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

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

我就像你一样,尽量只用~/.Rprofile(甚至整台机器只用Rprofile.site),但最终在.Renviron 中添加了一些东西

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2019-05-02
    • 2018-02-11
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多