2011-11-11 44 views
3

我想從Perl腳本中調用R,但遇到了問題,我認爲這可能是Mac的事情,而不是Perl/R的事情我有Snow Leopard,R在路徑中,所以沒有發現Perl沒有找到R)的問題。我已經安裝了統計:: R模塊,但我不認爲圖形被正確調用。我已經嘗試了很基本的腳本(命令R中工作),但是這似乎什麼也不做的Perl: -運行統計::在Mac OS上的Perl中的R模塊 - 沒有圖像正在生成

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

希望有人能幫助我。

非常感謝

海倫

+0

Did you miss typing $ R-> startR; – SAN

+0

剛剛發現,如果我包含該行: - $ R-> run(q'png(「out.png」)');它會產生一個我可以打開的文件。 –

+0

獨立於您的問題,考慮從古代0.02升級統計:: R!我記得使用它,它真的很破碎! – tsee

回答

2

我發現你的問題有趣,是一個老鄉MACR,而並不感到驚訝,從文件中的圖形設備有輸出,png(),而不是從使用plot()無先前致電dev.new()。如果您進入Mac控制檯圖形設備quartz(),可能但無法確定的是,您可以讓R在顯示器顯示屏中打開交互式窗口。我無法從文檔中知道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可能是有用的。