Rscript无法识别setGeneric函数

时间:2013-07-02 11:02:32

标签: r batch-file rscript

我正在尝试将R脚本转换为客户端可以批处理模式运行的内容。我的代码使用泛型函数和一个接近开头的片段如下:

setGeneric("testInput", function(inputData, params = list())
    standardGeneric("testInput"))

我一直在使用 R CMD BATCH ,它运行正常。但是我找不到一个简单的方法让我的脚本在控制台上打印输出,所以基于此(并建议Rscript.exe是运行R批处理文件的“正确”方式)我决定切换到 RSCRIPT 即可。但是当使用Rscript运行相同的.R文件时,我得到以下内容:

Error: could not find function "setGeneric"
Execution halted

我知道这背后可能有一个微不足道的原因,但我无法弄明白。有人可以指出我的错误在哪里吗?是否有任何建议?

1 个答案:

答案 0 :(得分:3)

setGenericmethods包的一部分,通常在您使用Rscriptlittler时在交互式会话中启动R但不在非交互式会话中加载。 / p>

因此,您需要在脚本中调用require(methods)之前添加setGeneric

例如,此代码无效

Rscript -e "setGeneric('mean', function(x) standardGeneric('mean'))"
Error: could not find function "setGeneric"
Execution halted

但是这个会起作用

Rscript -e "require(methods);setGeneric('mean', function(x) standardGeneric('mean'))"
Loading required package: methods
[1] "mean"