我试图构建一个R包,其目标是通过获取输入数据并将输出数据写入外部数据库(PostgreSQL)来运行一系列分析。
具体来说,我需要一组操作被安排为每天运行。因此,我用R代码编写了一些bash脚本(使用头#!/usr/bin/env Rscript
),并将它们保存到R包的exec/
文件夹中。脚本对R/
文件夹中的包核心函数进行了多次调用。
在这一点上,一旦在linux服务器上安装了这个包,我如何设置crontab来直接访问exec/
文件夹中的脚本?
这种处理方式是否正确,或者这种操作是否有不同的最佳实践?
最佳答案
我们在工作的时候都会这样。在家里我也有一些重复的cronjob,例如CRANberries。您引用的exec/
文件夹可以工作,但我的首选解决方案是使用,例如,inst/scripts/someScript.R
。
然后,在第一次需要从包库创建软链接时,比如说,/usr/local/lib/R/site-library/myPackage/scripts/someScript.R
到$PATH
中的目录,比如说/usr/local/bin
。
关键的一点是,即使你更新了软件包,软链接仍然存在。所以现在你是金色的。现在只需要crontab条目引用someScript.R
。我们混合使用Rscript
和littler脚本。
关于r - 计划属于R包的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44146029/