Rscript找不到库

时间:2016-11-29 22:54:50

标签: r libraries rscript

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

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

print(sessionInfo())

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

$ Rscript sess.R

我得到以下输出:

[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

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

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

Rscript sess.R

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

[1] "/usr/lib64/R/library" "/usr/share/R/library"

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

Error in library("gtools") : there is no package called ‘gtools’
Execution halted

在那里,似乎R在这种情况下无法找到gtools,即使库路径是相同的...... 我错过了什么吗?有没有错误,我什么都看不到?或者是集群设置的问题?

0 个答案:

没有答案