【发布时间】:2017-03-31 18:34:33
【问题描述】:
如果我从命令行运行,谁能解释为什么:
>R #So I'm in the R environment
>plot(cars)
>sessionInfo()
情节按预期生成,sessionInfo 的输出为:
> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
但是,当我将这两行代码放入一个名为 Test.R 的脚本中时,如下所示:
#!/usr/bin/Rscript
plot(cars)
sessionInfo()
并运行“Rscript Test.r”
没有产生任何情节,会话信息的输出是:
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets base
两个 sessionInfo 看起来一样,我使用“-X”参数登录到我的终端,输入“xclock”会生成时钟图片,我之前使用 Rscript 生成绘图。当我阅读here 时,我还添加了一行“require(methods)”,这可能会有所帮助。如果有人可以就我可以做些什么来查明问题提供帮助,我将不胜感激。
编辑 1:对 Amit 评论的回复如下: 我实际上在 Mac 上使用 unix,我认为您的方法适用于 windows,所以我将命令稍微编辑为我认为应该的,但如果我做错了请告诉我。我这样做了:
$ /usr/bin/Rscript --vanilla --slave Test2.r
Loading required package: methods
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] methods stats graphics grDevices utils datasets base
【问题讨论】:
-
Rscript 可能很不稳定。如果你去 cmd 并写:
"C:\Program Files\R\R-3.2.2\bin\x64\R.exe" --vanilla --slave CMD BATCH "D:\PATH\FILE.R"会发生什么(显然将 R 路径更改为你正在使用的版本并将路径/文件更改为你的? -
我已将输出作为评论包含在上面,我很抱歉,我收到一条错误消息,说我的回复帖子(即代码)太长,无法粘贴到此处。
-
您仍在使用 Rscript... 使用
usr/bin/R,然后指定您到Test2.r的路径。你确定是.r不是.R? -
非常感谢,所以如果我输入 /usr/bin/R /path/to/Test2.r ;我刚刚得到: ARGUMENT 'path/to/Test2.R' ignored 然后 R 控制台/环境启动了吗?然后我将扩展名从“.r”更改为“.R”,同样的事情发生了吗?
-
亲爱的@user1288515,您完全错误地假设 the_scripting_ 变体会以与 interactive 环境相同的方式打开(图形)绘图设备。它没有,并且记录在案。您可以打印到
pdf()或png()或...许多其他设备,方法是明确打开它们,就像你在回答中所做的那样。不多也不少,按记录和预期工作。