【发布时间】:2014-08-30 21:13:28
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
你从
sessionInfo()的输出中得到了什么,无论是在交互式会话中还是从 Rscript 中调用。 -
我会将 sessionInfo 输出添加到我的问题中。基本上,你是对的。 sessionInfo() 显示“方法”包附加在 R 中,但不在 Rscript 中。
-
在
?Rscript中他们这样说:“‘Rscript’ 的默认设置省略了‘方法’,因为它需要大约 60% 的启动时间。” -
啊,不知怎的,我错过了。我花了一段时间才意识到“是”是“方法”而不是“基础”的一部分,我猜。