Веб-интерфейс к программе R [закрыт]

18

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

У меня есть вопросы для тех, кто сделал аналогичный веб-интерфейс:

  1. Какую веб-инфраструктуру использовать
  2. Что является самым простым способом связи с веб-интерфейсом и Rscripts (в рамках архитектуры веб-приложения).
  3. Должен ли я установить R на сервер (если да, как использовать Rscripts из веб-интерфейса)
задан user1331120 24.04.2012 в 10:06
источник
  • opencpu.org, или если вам нужен interop для не-web тоже: rforge.net/Rserve –  Hansi 24.04.2012 в 10:16
  • Очень похоже: stats.stackexchange.com/questions/9699/... (Возможно, RApache - это то, что вы ищете) –  nico 24.04.2012 в 10:44
  • , а также посмотреть: stackoverflow.com/questions/1397097/... –  Paul Hiemstra 24.04.2012 в 10:46
  • @ Ханси. Вы должны превратить это в ответ, чтобы его можно было проголосовать до вершины. –  Ruben 29.10.2014 в 16:18

7 ответов

13

R имеет свой собственный веб-сервер, поэтому вы можете сделать все это в пределах R. Тогда нет необходимости беспокоиться о выборе структуры или об их разговоре друг с другом и т. д. - просто используйте фреймворк R:

Ссылка

Если вам не нравится это по производительности или по другим причинам, практически любая инфраструктура будет говорить с R так или иначе, поэтому используйте то, с чем вы знакомы. Я бы использовал Django и либо вызвал R через Rpy2, либо запустил процесс Rserve, но если вы можете программировать на PHP или Java, тогда используйте фреймворк на основе этих языков. Если вы не можете запрограммировать ничего, кроме R, то либо изучите Python, либо используйте Rook.

    
ответ дан Spacedman 24.04.2012 в 13:06
источник
9

Rstudio имеет новый сервер под названием Shiny, который использует node.js для пользовательского интерфейса:

Ссылка

    
ответ дан Hari Titan 18.04.2013 в 20:45
источник
7

Rstudio предоставляет веб-интерфейс для R, см. Ссылка

    
ответ дан Markus Graf 24.04.2012 в 11:45
источник
  • круто! не знал, что RStudio может это сделать! –  nico 24.04.2012 в 16:28
5

Вы можете запустить R внутри веб-сервера apache: Ссылка

    
ответ дан Daniele 24.04.2012 в 11:53
источник
5

Очень удобным способом является объединение Rstudio Server и Rook (см. другие ответы для ссылок).

Rstudio Server предоставляет очень простой способ установки R-сервера, к которому может обратиться любой, кто находится внутри сети. Вы обычно используете его для редактирования и запуска скрипта на этом сервере.

Rook позволяет вам легко создавать веб-интерфейс, смешивая html-код для текста и взаимодействия (например, поля ввода и т. д.) и R-код. Как только ваш скрипт работает, просто запустите его из Rstudio Server, и любой пользователь (с доступом) сможет подключиться к нему на том же IP-адресе, что и Rstudio Server.

Я использую эту настройку вместе с googleVis и очень доволен.

    
ответ дан nassimhddd 16.06.2012 в 11:01
источник
3

OpenCPU в настоящее время, на мой взгляд, самый продвинутый бесплатный пакет для создания веб-сервисов безстоящих (REST) ​​в R. Shiny - отличная инфраструктура, но если вы планируете использовать бесплатную версию сообщества, обратите внимание, что это не обрабатывать одновременные вызовы.

    
ответ дан Bastian 29.09.2015 в 15:50
источник
  • Может быть, мне не хватает воображения, но я понятия не имею, как OpenCPU поможет мне (легко) разработать веб-приложения в R. Является ли это веб-каркасом? Если это так, у него самая худшая страница описания, которую я когда-либо видел. –  Konrad Rudolph 29.09.2015 в 16:09
  • OpenCPU предоставляет функции R в качестве служб REST. Он основан на среде RApache, поэтому он поддерживает параллельные соединения по дизайну - без проблем с несколькими пользователями, обращающимися к вашему веб-сервису одновременно. Также поддерживает SL (Shiny делает оба раза только в платной версии). Сначала вам нужно создать обычный R-пакет (например, с помощью RStudio), содержащий ваше приложение: R-код, HTML-страницы, CSS, JS-скрипты (jQuery, Bootstrap и т. Д.) И другие ресурсы. Страницы HTML являются статическими (без предварительной обработки, как в ASP.NET), но с помощью JS-библиотеки OpenCPU Ajax вы можете легко их модифицировать. –  Bastian 30.09.2015 в 05:12
  • После того, как пакет с вашим приложением будет готов, вы установите его обычным способом - и все. OpenCPU не содержит никаких «виджетов» или «причудливых вещей» - это всего лишь способ разоблачения ваших приложений в Интернете. Это стабильное, быстрое и надежное решение. Я использую его коммерчески в течение длительного времени и никогда не был разочарован. Единственным недостатком является то, что нельзя использовать пакеты на основе Java (например, xlsx) из-за очень специфической ошибки Java. Также обратите внимание, что вам нужно будет начать думать «RESTfuly» (звонки без гражданства), который является стандартом сегодняшнего дня, но не тривиальным (у вас может быть грубый старт). –  Bastian 30.09.2015 в 05:29
  • Что касается документации, ну ... Я думаю, что это вопрос вкуса :) Я нашел там все, чтобы начать создавать свои первые приложения. API описывает, как вызвать ваш код (синхронно) извне. JS lib помогает вам сделать ваши страницы более динамичными, асинхронно запрашивая сервер и обновляя содержимое страницы. С демонстрационными приложениями на GitHub вы можете изучить его на примерах. Существует также простое руководство, в котором разъясняются некоторые важные проблемы (но иногда проще использовать Google, чем поиск на странице :)). Некоторый предыдущий опыт создания сервисов RESTful упростит работу. –  Bastian 30.09.2015 в 05:41
  • Я думаю, что тот факт, что вы только что дали более подробное описание его использования в двух комментариях, чем легко доступен на веб-сайте, говорит о том, что касается веб-сайта. Во всяком случае, я думаю, что вы правы, это, вероятно, то, что происходит после OP. –  Konrad Rudolph 30.09.2015 в 07:58
0

На веб-сайте R есть хороший список - Ссылка     

ответ дан mut1na 19.04.2013 в 11:23
источник