【问题标题】:Load R packages only once when executing R scripts via bash通过 bash 执行 R 脚本时仅加载一次 R 包
【发布时间】:2019-12-29 13:29:20
【问题描述】:

我有一个 R 文件 example.r,它基本上看起来像这样:

#!/usr/bin/env Rscript
# do something ...
library(somelibrary)
# do something with somelibrary functions

还有一个 bash 脚本,它需要在一次执行期间使用不同的输入参数多次调用 Rscript example.r <PARAMETER>。我的问题是是否有办法只加载一次包somelibrary。现在每次我调用脚本时都会加载包,这会导致一些开销。

【问题讨论】:

  • 这是不可能的。但是,您可以构建代码以在同一 R 会话中将每个 example.R 脚本作为 函数 运行。正确完成,当函数存在时,您的.GlobalEnv 将不受影响,但库将是相同的。

标签: r bash rscript


【解决方案1】:

如果您要启动这样的脚本:

#!/usr/bin/env Rscript
# do something ...
library(somelibrary)
# do something with somelibrary functions

那么它的每个实例都是一个新进程,一个新的新 R 进程,因此必须使用 library 附加任何附加包。除非您想将 R 作为服务运行,否则开销是不可避免的。

【讨论】:

  • @John 和这个问题有关系吗?
  • 谢谢,我通过代码重组解决了这个问题,并用python脚本和rpy2替换了bash脚本
猜你喜欢
  • 1970-01-01
  • 2020-08-20
  • 2021-10-19
  • 2011-09-20
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
相关资源
最近更新 更多