【问题标题】:Rscript does not have "is" functionRscript 没有“is”功能
【发布时间】: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% 的启动时间。”
  • 啊,不知怎的,我错过了。我花了一段时间才意识到“是”是“方法”而不是“基础”的一部分,我猜。

标签: r rscript


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多