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

Как мне сделать быстрое развитие графического интерфейса для методов R и Octave (возможно, с Python)?

Мы являемся исследовательской лабораторией среднего размера, основными результатами которой являются новые статистические методы анализа больших наборов данных. Обычно мы развиваемся в R и MATLAB/Octave.

Мы хотели бы расширить охват нашей работы, создав простые пользовательские интерфейсы в стиле мастера, чтобы получить доступ к нашим методам, например веб-приложениям, таким как RNAfold или автономные приложения для анализа личных данных.

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

Однако мы хотим иметь возможность разрабатывать и выпускать быстро и дешево. Нам повезло, что мы можем финансировать одного разработчика в лаборатории, и он/она должен поддерживать несколько проектов.

Существует множество групп с теми же потребностями и ограничениями, что и мы, поэтому было бы полезно иметь последовательную долгосрочную стратегию для этого типа проблем.

Edit Я попросил дать комментарии по четырем возможным подходам, приведенным ниже с резюме замечаний:

  • Вызов методов R и Octave из Python.
    ответы:
    • Интеграция R/Python
    • Использование клиента Python для входа на сервер Octave (от ChrisC)
  • Повторное внедрение наших методов в Python. В общем, это непросто, потому что наши методы полагаются на другие методы, также реализованные в R и Octave. ответы:
    • Не было комментариев по этому подходу, возможно, это плохая идея.
  • Использование другой структуры для создания пользовательских интерфейсов.
    ответы:
    • Как создать GUI и веб-приложения непосредственно в R? (от hadley, см. ответ для ссылок на инструменты)
  • Другие идеи, которые мы рассмотрели, например, интегрируемся с системами управления рабочими процессами, такими как Taverna.
    ответы:
    • Попробуйте интерфейс визуального программирования, например RedR (от chrisamiller)

Мой предпочтительный ответ

Сначала я рассмотрю подход, предложенный Spacedman: using QtDesigner для создания пользовательского интерфейса для PyQt4 и вызова R с помощью RPy. Мы получаем много студентов, не имеющих опыта программирования, которые хотят добровольно участвовать в работе лаборатории, и QtDesigner выглядит как нечто, что мы могли бы обучить их эффективному использованию.

Я хотел бы разработать GUI непосредственно в R, как рекомендовано hadley, но RQt, который я предполагаю, что мне нужно использовать QtDesigner, похоже, не находится в активной разработке (последнее обновление было летом 2009 года).

Кроме того, похоже, что нам, возможно, придется внедрять наши методы исключительно в R и переводить с MATLAB/Octave на R. В моей области это, вероятно, не так уж плохо.

Приложение:

  • Библиотеки Python для упрощения построения пользовательского интерфейса:
  • Другие проекты, которые объединяют Python, R и Octave:
  • GUI для создания графических интерфейсов:
    • QtDesigner с PyQt4 (из Spacedman). Примечание Qt4 является коммерческим и доступен под LGPL.
4b9b3361

Ответ 1

Я бы пошел с Python и PyQt4 для пользовательского интерфейса и использовал Rpy для интерфейса с R.

Там QtDesigner для проектирования интерфейса, и вы можете генерировать python из этого. QtAssistant дает вам полный набор гиперссылок для Qt, который является лучшим, что я когда-либо использовал.

Хорошо, стоит!

Ответ 2

Почему бы не продолжить развитие непосредственно в R? Существует несколько пакетов, которые позволяют разрабатывать графические интерфейсы (gWidgets RGtk, tcl/tk, RQt, Rwxwidgets, rjava) или .

Ответ 3

Это высокий порядок - мультиплатформенный, мульти-backend (R и Ocatve), а также дешевый, быстрый и простой в использовании!

Сверху моей головы посмотрите на эти

  • Sage: у них есть то, что они называют ноутбуками, которые являются интерактивными веб-страницами, и показали приятную демонстрацию при использованииR! 2010; Я думаю, что Октав тоже покрыт.

  • Shogun: он также интегрируется с Python, R и Octave и может иметь некоторые инструменты для использования.

Ответ 4

Я искал что-то похожее - простой быстрый графический интерфейс в R. Кажется, есть новая альтернатива ребятам RStudio.

Shiny должно быть достаточно для небольших веб-интерфейсов без большого количества кодировок. Кажется, что это жизнеспособный вариант, если вам нужен простой стиль ввода/вывода интерфейса.

Ответ 5

Я не пробовал напрямую подключать Octave к Python за пределы настройки приложений Octave в качестве сервера и иметь клиентский вызов Python, но мне посчастливилось интегрировать R с любезностью Python RPy. В некоторых наших приложениях мы строим, например, a wxPython + matplotlib Интерфейс Python, и вызовите R-скрипты непосредственно через RPy.

Ответ 6

Для интеграции R и Python вы также можете взглянуть на

Ответ 7

Вы можете попробовать RedR, который позволяет обертывать R-пакеты в графическом интерфейсе Python.