在Mac OS上使用Perl运行Statistics::R模块时,没有生成图像

3

我想在Perl脚本中调用R,但遇到了问题,我认为这可能是Mac的问题,而不是Perl/R的问题(我使用的是Snow Leopard,并且R已经在路径中,所以Perl找不到R不是问题)。我已安装Statistics::R模块,但我认为图形没有正确调用。我尝试了一个非常基本的脚本(命令在R中有效),但在Perl中似乎什么也没做:

use strict;     
use warnings;     
use Statistics::R;    
my $R = Statistics::R->new();     
$R->run(q`plot(c(1, 5, 10), type = "l")`);     
$R->run(q`dev.off()`);

注意:这里的 ' 实际上是反引号,但此论坛不会将其发布为代码示例。
这将在R中生成一个简单的折线图,但在运行Perl脚本时只会返回命令行提示符。(这是从CPAN模块页面 http://metacpan.org/pod/Statistics::R 改编而来)
希望有人能帮助我。
非常感谢。
海伦

你是否忘记输入 $R->startR; 了? - SAN
刚刚发现,如果我包含以下代码行: $R->run(qpng("out.png")); 它将生成一个文件,我可以打开。 - Helen Wright
无论你的问题是什么,考虑升级Statistics::R,不要再使用古老的0.02版本了!我记得当时使用它时出现了很多问题! - tsee
1个回答

2

我发现你的问题很有趣,作为一名MacR用户,我并不惊讶你从文件图形设备png()中获得了输出,但在使用plot()之前没有先调用dev.new()时却没有输出。如果你使用Mac控制台图形设备quartz(),可能会打开一个交互式窗口在你的显示器上,但这并不确定。从文档中无法确定Perl是否打开了一个交互式的R会话。这段代码会产生什么结果:

use strict;     
use warnings;     
use Statistics::R;    
my $R = Statistics::R->new();
$R->run(q`quartz()`);
$R->run(q`plot(c(1, 5, 10), type = "l")`);     
$R->run(q`dev.off()`);

我认为编写这段代码的人会对你的进展感兴趣。链接的网页要求反馈,如果你提供了反馈,可能会对其他MacR有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接