我正在尝试将 R 脚本转换为客户端可以在批处理模式下运行的脚本。我的代码使用通用函数,接近开头的一个片段如下:
setGeneric("testInput", function(inputData, params = list())
standardGeneric("testInput"))
我一直在使用R CMD 批处理而且效果很好。然而,我找不到一种简单的方法让我的脚本在控制台上打印输出,因此基于此(以及 Rscript.exe 是运行 R 批处理文件的“正确”方法的建议),我决定切换到Rscript。但是,当使用 Rscript 运行相同的 .R 文件时,我得到以下结果:
Error: could not find function "setGeneric"
Execution halted
我知道这背后可能有一个微不足道的原因,但我就是无法弄清楚。有人可以指出我的错误在哪里吗?
有什么建议么?
setGeneric
是的一部分methods
当您在交互式会话中启动 R 时通常会加载该包,但在非交互式会话中则不会使用Rscript
or littler
.
所以你需要添加一个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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)