Подтвердить что ты не робот

Лучший способ создать приложение на основе R?

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Python + Qt4 + RPy = много Win.

Например, посмотрите, что сделал Карсон Фармер с Qgis и плагином ManageR - это полный интерфейс R для географических данных в Qgis mapping package.

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

Ответ 3

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

Ответ 4

Если вы идете на С++, посмотрите rcpp и Rinside

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

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

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

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