14

我需要通过 bash shell 运行几个脚本 usingRscript并且我使用的一些函数需要该函数isGeneric。但是,在这种情况下,过程会像这样结束(例如):

Error in .getLogLik() : could not 
find function "isGeneric"
Calls: main -> dredge -> .getLik -> .getLogLik
Execution halted

这可以复制如下

# in the bash shell
echo "isGeneric('apply')" > /tmp/test.R
Rscript /tmp/test.R

结果:

Error: could not find function "isGeneric"
Execution halted

但是,如果我们打开一个 R 会话并输入以下内容,它会起作用:

# in the R shell
isGeneric('apply')
[1] FALSE

您知道问题出在哪里以及如何解决吗?

4

1 回答 1

23

根据help(Rscript)Rscript默认情况下不加载方法包,因为它很耗时。所以你要么需要在命令行上指定它:

Rscript --default-packages=methods file.R

或者library(methods)在您正在调用的文件的顶部。

于 2013-10-19T16:53:15.427 回答