Rscript找不到库

Dmo*_*tti 5 r libraries rscript

在Unix群集上作为批处理作业运行R脚本时遇到问题。问题是当尝试在环境中加载库时,R无法找到该库。我举一个例子。我将使用基本的R脚本名称sess.R:

print(.libPaths())
library("gtools")

print(sessionInfo())
Run Code Online (Sandbox Code Playgroud)

如果我只是使用以下命令从命令行运行此脚本:

$ Rscript sess.R
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

[1] "/usr/lib64/R/library" "/usr/share/R/library"
R version 3.2.3 (2015-12-10)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: CentOS release 6.6 (Final)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  base

other attached packages:
[1] gtools_3.5.0
Run Code Online (Sandbox Code Playgroud)

库“ gtools”已正确加载,脚本正在运行。但是,如果我编写一个简单的批处理作业(我将在该作业中包含几个可选参数,包括错误和输出文件),例如:

#!/bin/bash
#SBATCH --output=sess.out
#SBATCH --error=sess.err

Rscript sess.R
Run Code Online (Sandbox Code Playgroud)

一秒钟后作业失败。我得到的两个输出文件当然是sess.out和sess.err。Sess.out包含库目录:

[1] "/usr/lib64/R/library" "/usr/share/R/library"
Run Code Online (Sandbox Code Playgroud)

这似乎与从命令行运行Rscript时的相同,所以那里没有错误。但是,由于脚本已终止,因此无法打印Info Session。sess.err文件包含以下错误:

Error in library("gtools") : there is no package called ‘gtools’
Execution halted
Run Code Online (Sandbox Code Playgroud)

在那里,即使库路径相同,似乎R在这种情况下也找不到gtools。我错过了什么吗?我在某处看不到错误吗?还是集群设置问题?