Статистика Perl :: R генерирует пустое изображение графика (jpeg) - PullRequest
5 голосов
/ 04 января 2012

В настоящее время я использую ActiveState Perl 5.14 и проект R версии 2.13.2.В Perl я использую Статистика :: R версия 0.08.Согласно ActiveState, более поздние версии Statistics::R (до 0,24) не прошли проверку и поэтому не доступны через PPM.

История: я успешно использовал Perl для доступа к R в течение некоторого времени для выполненияанализ.Теперь я хочу сгенерировать JPEG-изображения результатов анализа для упрощения визуализации.

Вот проблема: я могу сгенерировать изображения успешно из консоли R.Однако когда я выполняю те же команды через Perl, я получаю только пустое изображение.Мой консольный код включает (упрощенно, конечно):

  x<-c(1,2,3,4,5)
  y<-c(5,4,3,2,1)
  jpeg("C:/temp.jpg")
  plot(x,y)
  dev.off()

И мои команды Perl включают (также упрощенно):

   $R = Statistics::R->new();
   $R->start_sharedR
   $R->send("x<-c(1,2,3,4,5)");
   $R->send("y<-c(5,4,3,2,1)");
   $R->send('jpeg("C:/temp.jpg")');
   $R->send("plot(x,y)");
   $R->send("dev.off()");

Есть предложения?Я знаю, что есть другие варианты печати, доступные для Perl.Я исключил некоторые (график GD), потому что данные оси X не обрабатываются как числовые.Я бы предпочел оставить его в R, если это вообще возможно, поскольку я уже взаимодействую в этом пакете для анализа.Спасибо!

Ответы [ 2 ]

4 голосов
/ 13 января 2012

Забудьте статистику :: R. Просто используйте системный вызов. По крайней мере, это то, что я делаю!

my $path_to_r = "C:/Program Files/R/bin/Rscript.exe";

my $cmd = "x<-c(1,2,3,4,5);";
$cmd .= "y<-c(5,4,3,2,1);";
$cmd .= 'jpeg("C:/temp.jpg");';
$cmd .= "plot(x,y);";
$cmd .= "dev.off()";

system($path_to_r . " -e '" . $cmd . "'");

Если ваш R-скрипт немного вырос или если он принимает данные из параметров, запишите его в файл и Rscript.exe этот файл.

0 голосов
/ 29 апреля 2012

У меня отлично работает со статистикой R :: 0.27, но не с 0.08, единственной версией, которую я мог найти в диспетчере пакетов Active Perl.Чтобы установить 0.27, мне пришлось использовать cpan командную строку.Сделать тест не удалось, но сделать установку было нормально.Немного спаситель жизни.

(Кстати, я относительный нуб. Однако использование командной строки cpan было довольно простым.
Введите i /Statistics-R/ из командной строки cpan, затемустановить FANGLY / Statistics-R-0.27.tar.gz (или любой другой соответствующий файл. Я использую систему Windows, поэтому RSPerl, к сожалению, не вариант для меня. Замечу, что последняя версия Statistics :: R датирована мартом 2012 года, поэтомувозможно, некоторые ранее задокументированные проблемы (piping?) были решены. Вам также может понадобиться установить 'maker'; в моем случае это был 'dmake', а не 'nmake'. Довольно просто, вы можете получить версию makeс веб-сайта M $ и скопируйте этот файл + .err в PERL \ bin dir. Но помощь по этому вопросу доступна в другом месте. Надеюсь, это поможет!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...