#macos #perl #r
#macos #perl #r
Вопрос:
Я хотел бы вызвать R из скрипта Perl, но у меня возникли проблемы, которые, как я думаю, могут быть связаны с Mac, а не с Perl / R (у меня Snow Leopard, и R находится в path, поэтому нет проблем с тем, что 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 )
Надеюсь, кто-нибудь сможет мне помочь.
Большое спасибо
Хелен
Комментарии:
1. Вы пропустили ввод $ R-> startR;
2. Только что обнаружил, что если я включу строку:- $ R-> выполнить (q
png("out.png")
); это создаст файл, который я могу открыть.3. Независимо от вашей проблемы, рассмотрите возможность обновления Statistics:: R с древнего 0.02! Я помню, как использовал это, и это было действительно довольно сломано!
Ответ №1:
Я нашел ваш вопрос интригующим, будучи коллегой MacR, и не был удивлен, что вы получили вывод с файлового графического устройства, png()
но не от использования plot()
без предварительного вызова dev.new()
. Возможно, но ни в коем случае не обязательно, что вы могли бы заставить R открыть интерактивное окно на дисплее вашего монитора, если вы вошли в графическое устройство консоли Mac, quartz()
. Из документации я не смог определить, открывался ли интерактивный сеанс R Perl. Что выдает этот код:
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 в будущем.