Лучший способ построить приложение на основе R? - PullRequest
27 голосов
/ 07 января 2011

Я ищу предложения о том, как создать приложение, которое использует R для аналитики, создания таблиц и построения графиков. Я имею в виду приложение, которое:

  • отображает различные таблицы данных на разных вкладках, как в Excel, и столбцы должны сортироваться нажатием.
  • принимает пользовательские параметры ввода в некоторых диалоговых окнах.
  • отображает графики динамически (т.е. зависит от ввода пользователя) либо на вкладке, либо в новом всплывающем окне / фрейме

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

  • Возможен ли полностью основанный на R подход (в Windows)? Следующий отрывок из Rattle статьи в R -Journal интригует меня:

Интересно отметить, что первая реализация погремушки фактически использовал Python для реализации обратные вызовы и R для статистика, используя rpy. Релиз RGtk2 разрешен интерфейс элементы Rattle должны быть записаны непосредственно в R, так что Rattle является полностью основанное на R приложение

  • Если для части GUI лучше использовать другой язык, какой язык лучше всего подходит для этого? Я ищу язык, где создание графического интерфейса относительно "безболезненно", и оно также очень хорошо интегрируется с R. Из этого вопроса StackOverflow Как мне быстро разработать графический интерфейс для методов R и Octave (возможно, с Python)? Я вижу, что Python + PyQt4 + QtDesigner + RPy2, кажется, лучший комбо. Это консенсус?

  • У кого-нибудь есть указатели на конкретные (с открытым исходным кодом) приложения типа, который я описываю, как примеры, из которых я могу извлечь уроки?

Ответы [ 4 ]

10 голосов
/ 07 января 2011

Есть много способов сделать это, включая упомянутый вами подход python.Если вы хотите сделать это исключительно в рамках R и если ваши цели достаточно скромны, можно использовать пакет gWidgets.Это раскрывает некоторые возможности RGtk2, tcltk или qtbase (см. Проект qtinterfaces на r-forge) таким образом, что это почти безболезненно, насколько это возможно.Если вы хотите больше, посмотрите на использование этих пакетов напрямую.Я бы порекомендовал RGtk2, если вы собираетесь делиться с другими, а если нет, то qtbase или tcltk.

7 голосов
/ 07 января 2011

Python + Qt4 + RPy = Большая победа.

Например, посмотрите, что Carson Farmer сделал с Qgis и плагином ManageR - это полноценный интерфейс R для географических данных в пакете отображения Qgis.

В зависимости от того, какой статистический функционал вам нужен, вы можете даже не использовать его вообще, выполняя всю статистику в Python, используя такие полезности, как числовой пакет Numpy и графическое полотно Qwt.

4 голосов
/ 07 января 2011

Как насчет традиционного LAMP + R Backend?Опционально s / MySQL / Postgres и опционально s / PHP / Perl Rapache тоже выглядит довольно круто: rapache.net

1 голос
/ 08 января 2011

Если вы выбираете C ++, взгляните на rcpp и Rinside

Java можно комбинировать с R, используя JRI

RServe предоставляет вам протокол TCP / IP для взаимодействия с R. Есть клиент Java и клиент C ++, поэтому можно использовать любой из них.

Об замечании: еще одна вещь, о которой вы должны знать, это то, что R содержит довольно много библиотек, написанных на фортране и C, которые можно вызывать напрямую. То же самое касается более продвинутых пакетов, таких как VGAM, они также содержат довольно много подпрограмм на Си. В зависимости от того, что именно вы хотите сделать, вы можете попытаться поработать с ними, просто чтобы избежать накладных расходов на сами функции R.

Я сам искал их обзор, но, AFAIK, вам придется приложить некоторые усилия, чтобы получить все. Некоторые вещи, на которые вам непременно стоит обратить внимание, это определение языка R и R Internals .

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