【问题标题】:Schedule a function that belongs to an R package调度属于 R 包的函数
【发布时间】:2017-05-23 22:26:17
【问题描述】:

我正在尝试构建一个 R 包,其目标是通过获取输入数据并将输出数据写入外部数据库 (PostgreSQL) 来运行一系列分析。

具体来说,我需要安排一组每天运行的操作。因此,我用 R 代码编写了一些 bash 脚本(使用标头 #!/usr/bin/env Rscript)并将它们保存到 R 包的 exec/ 文件夹中。这些脚本多次调用 R/ 文件夹中的包的核心函数。

此时,一旦在 linux 服务器上安装了包,我该如何设置一个能够直接访问 exec/ 文件夹中的脚本的 crontab?

这种处理方式是否正确,或者对于此类操作是否有不同的最佳实践

【问题讨论】:

    标签: r linux bash postgresql package


    【解决方案1】:

    我们在工作的所有时间都这样做。在家里,我也有几个经常性的 cronjobs,例如 CRANberries。您引用的 exec/ 文件夹有效,但我首选的解决方案是使用 inst/scripts/someScript.R

    然后在第一次你需要从你的包库创建一个软链接,比如/usr/local/lib/R/site-library/myPackage/scripts/someScript.R$PATH 中的一个目录,比如/usr/local/bin

    关键方面是即使您更新软件包,软链接仍然存在。所以现在你是金子了。您现在只需要引用someScript.R 的crontab 条目。我们混合使用Rscriptlittler 脚本。

    【讨论】:

    • 非常感谢德克!事实上,这是一项持续的活动,所以我想知道是否有比我更有经验的人设计了处理它的最佳方法。再问你一个问题:安装包后,脚本将能够看到inst/ 文件夹中的其他对象,并像R/ 文件夹中的代码一样访问它们,例如system.file('foo/hello.txt', package = 'my_package')?
    • 是的,完全正确。这里有大量示例,在手册中,在其他包中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2016-05-02
    • 2016-05-25
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多