0

我正在尝试使用 Rscript 从命令行运行一些 R 脚本。我在 mac 和 linux 上都尝试过,并在两者上都遇到了以下问题。如果我只是将它输入到 R 中,下面的测试脚本就可以正常工作:

is

该脚本只是打印出函数“is”。但是,如果我把它放在这样的文件中:

#!/usr/bin/Rscript
is

然后使用“./test.R”或“Rscript test.R”运行它,我收到以下错误:

Error: object 'is' not found
Execution halted

似乎 Rscript 中没有像 R 中那样定义“is”函数。我怎样才能使我的脚本工作?

注意:显然我的目标不仅仅是打印出“is”函数。我正在尝试使用 gamlss,而“is”函数被 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 
4

1 回答 1

2

事实证明,解决方案是加载“methods”包(其中包含“is”函数)。我猜它默认加载在 R 中,但由于某种原因不在 Rscript 中。如果我将脚本更改为:

#!/usr/bin/Rscript
library(methods)
is

然后它可以从命令行正常工作。

于 2014-07-09T17:54:48.647 回答