3 Stimmen

Ausführen des Statistics::R-Moduls in Perl unter Mac OS - kein Bild wird erzeugt

Ich möchte R aus einem Perl-Skript heraus aufrufen, habe aber Probleme, die meiner Meinung nach eher eine Mac-Sache als eine Perl/R-Sache sind (ich habe Snow Leopard, und R ist im Pfad, also kein Problem, dass Perl R nicht findet). Ich habe das Modul Statistics::R installiert, aber ich glaube nicht, dass die Grafiken richtig aufgerufen werden. Ich habe ein sehr einfaches Skript ausprobiert (die Befehle funktionieren in R), aber das scheint in Perl nichts zu bewirken:-

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()`);

HINWEIS: Die ' sind eigentlich Backticks, aber das Forum hier will sie nicht veröffentlichen, da es sie für ein Codebeispiel hält.

Dies erzeugt ein einfaches Liniendiagramm in R, gibt aber nur die Befehlszeilenaufforderung zurück, wenn ich das Perl-Skript ausführe. (Dies ist eine Anpassung der CPAN-Modulseite http://metacpan.org/pod/Statistics::R )

Ich hoffe, jemand kann mir helfen.

Vielen Dank!

Helen

2voto

IRTFM Punkte 250762

Als MacR-Kollege fand ich Ihre Frage sehr interessant und war nicht überrascht, dass Sie eine Ausgabe von einem Dateigrafikgerät erhielten, png() aber nicht durch die Verwendung von plot() ohne einen vorherigen Aufruf von dev.new() . Es ist möglich, aber keineswegs sicher, dass Sie R dazu bringen können, ein interaktives Fenster auf Ihrem Bildschirm zu öffnen, wenn Sie das Grafikgerät der Mac-Konsole eingeben, quartz() . Ich konnte der Dokumentation nicht entnehmen, ob eine interaktive R-Sitzung von Perl geöffnet wurde. Was erzeugt dieser Code:

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()`);

Ich glaube auch, dass die Leute, die den Code geschrieben haben, an Ihren Fortschritten interessiert wären. Auf den verlinkten Seiten wird um Feedback gebeten, und wenn Sie es geben, könnte es für andere MacRs nützlich sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X