[通过bash执行R脚本时仅加载R包一次

问题描述 投票:0回答:2

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

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

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

r bash rscript
2个回答
0
投票

如果您正在启动这样的脚本:

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

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


-1
投票

在附上包裹之前,您可以检查包裹是否已经装入。因此解决方案可能看起来像这样

if !("igraph" %in% .packages(TRUE)) {
        library(igraph)
}
© www.soinside.com 2019 - 2024. All rights reserved.