我正在尝试使用Rscript从命令行运行一些R脚本。我已经尝试过mac和linux,并在两者上遇到以下问题。如果我只是将它输入R:
,下面的测试脚本就可以正常工作is
脚本只打印出函数"是"。但是,如果我把它放在这样的文件中:
#!/usr/bin/Rscript
is
然后使用" ./ test.R"运行它。或" Rscript test.R",我收到以下错误:
Error: object 'is' not found
Execution halted
似乎"是"函数没有在Rscript中定义,因为它在R中。我如何让我的脚本工作?
注意:显然我的目标不仅仅是打印出" is"功能。我试图使用gamlss,"是"函数由gamlss调用,导致此错误。
编辑:在R中,sessionInfo()给出:
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.0.2
从Rscript开始,它给出了:
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets base
答案 0 :(得分:2)
事实证明解决方案是加载“methods”包(其中包含“is”函数)。我猜它默认加载到R中,但由于某些原因不在Rscript中加载。如果我将脚本更改为:
#!/usr/bin/Rscript
library(methods)
is
然后它从命令行运行良好。