Лучший способ создать приложение на основе 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
кажется лучшим комбо. Это консенсус?
-
У кого-нибудь есть указатели на конкретные (с открытым исходным кодом) приложения типа, которые я описываю, в качестве примеров, из которых я могу учиться?
Ответы
Ответ 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.