gpt4 book ai didi

r - .Rprofile 未在 cron 下调用

转载 作者:行者123 更新时间:2023-12-04 18:40:32 25 4
gpt4 key购买 nike

我在云上运行 Ubuntu 16.04.3 LTS。当我使用 Rscript 从命令行运行程序时,一切都按预期进行。但是,当我通过 cron 使用 Rscript 运行相同的程序时,似乎没有调用我的 .Rprofile 文件。我写了一个小程序来演示这个问题:

test_cron = function() {
#The next 3 lines are base R.
sink('~/test_cron.out')
on.exit(sink())
cat('The date and time are:', as.character(Sys.time()), '\n')
#Now try to access a personal option, set by .Rprofile.
root = getOption('root')
cat('Option root:', root, '\n')
}
test_cron()

我使用以下命令从命令行运行它:
Rscript test_cron.r

cron_test.out 文件包含以下内容:
The date and time are: 2017-11-14 06:15:46
Option root: /home/ubuntu/_algi/

crontab 中的相关行如下:
20 6 * * * /usr/bin/Rscript ~/test_cron.r

当它由 cron 运行时,cron_test.out 包含以下内容:
The date and time are: 2017-11-14 06:20:01
Option root:

显然,该程序在由 cron 运行时无法访问我的个人选项“root”。这是我运行的许多实验之一,这些实验让我相信 .Rprofile 不会在 cron 下调用。有解决办法吗?

注意: R_PROFILE_USER 环境变量设置为指向我的 .Rprofile 文件。显然,cron 下的 Rscript 忽略了它。

最佳答案

默认情况下,R 按特定顺序在三个位置查找并运行 .Rprofile 文件,这些位置是:

  • R_HOME:安装R的目录
  • HOME:用户的主目录
  • R的当前工作目录

  • 当前项目/wd 中的 .Rprofile 将覆盖 HOME 中的 .Rprofile 并且 HOME 中的 R_HOME 和 .Rprofile 将覆盖 R_HOME。

    因此,要创建特定于项目的启动脚本,只需在项目的根目录中创建一个 .Rprofile 文件。

    在您的情况下,当脚本由 cron 启动时,R 使用不同的 .Rprofile 文件,而不是从命令行启动脚本。

    关于r - .Rprofile 未在 cron 下调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47279009/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com