Интеграция R и его графики с существующим приложением Javascript/HTML

У меня есть существующее приложение Javascript/HTML. Я хотел использовать мощь научных вычислений и графики R Programming.

Моя цель состоит в том,

  1. Отправьте некоторые данные из приложения Javascript.
  2. Вызов предопределенных функций R с вводом данных.
  3. Получить вывод получить вывод в виде текста и графики.
  4. Отобразите его на странице HTML.

Как этого добиться,

  1. Должен ли я постоянно запускать R, использовать что-то вроде web sockets и подключаться к R? Если вы делаете Как передать R-скрипты для выполнения и получить выходной пакет?

  2. Существует Rserve. Есть некоторые реализации nodeJS для Rserve. Но проблема в том, что каждая строка кода должна проходить через evaluate команд. Даже если я это сделаю, как обрабатывать вывод графика?

  3. Я немного изучил openCPU. Если используется пакет openCPU R, R должен постоянно работать с библиотекой opencpu, и каждый раз, когда мы запускаем R и openCPU, он запускается с другим номером порта. И если я закрою сеанс R, сервер opencpu также завершится.

  4. Если я установлю автономный сервер opencpu на свою машину, как использовать R с этим? Я установил автономный сервер openCPU и после этого застрял.

Как мне поступить, Что мне сделать, чтобы выполнить мою задачу. Я как бы не знаю, в каком направлении идти. Пожалуйста, пролейте свет на это. Я уверен, что большинству людей это понадобится.

Я работал с shiny, но в данном случае я не могу его использовать. Необходимо подключить R из внешнего веб-приложения.


person Manoj G    schedule 02.07.2015    source источник
comment
Другой вариант — экспортировать данные в переносимый формат (например, csv) и запустить Rscript для файла .R, который найдет данные.   -  person Roman Luštrik    schedule 02.07.2015
comment
rapier может быть вариантом для тебя   -  person hrbrmstr    schedule 02.07.2015
comment
@RomanLuštrik: Но как вывести графику и отобразить ее в приложении на лету?   -  person Manoj G    schedule 02.07.2015
comment
@hrbrmstr: Спасибо за ваше предложение. Я изучу это.   -  person Manoj G    schedule 02.07.2015
comment
Вы можете сохранить рисунки в виде файлов. Хотя могут быть и лучшие, более элегантные варианты.   -  person Roman Luštrik    schedule 02.07.2015
comment
Где вы застряли с сервером opencpu? Вы просто устанавливаете его на Linux, а затем можете начать вызывать функции в своих R-пакетах через API.   -  person Jeroen    schedule 03.07.2015
comment
@Jeroen: Спасибо, Джероен. OpenCPU великолепен! Я застрял из-за какой-то другой зависимой библиотеки. Базовый тест пройден! Теперь пытаюсь заставить его работать с моим приложением. Просмотр примеров приложений. Это решит все мои проблемы, если я сделаю это. :)   -  person Manoj G    schedule 08.07.2015
comment
@ManojG Здравствуйте, сэр, вы выяснили, как решить проблему?   -  person Hamid    schedule 19.05.2018


Ответы (2)


FastRWeb звучит так, как будто он идеально подходит для ваших нужд. Из документации:

FastRWeb — это инфраструктура, которая позволяет любому веб-серверу использовать R-скрипты для создания контента «на лету», например веб-страниц или графики. URL-адреса сопоставляются со сценариями и могут иметь необязательные аргументы, которые передаются в функцию R, запускаемую из сценария. Например, http://my.server/cgi-bin/R/foo.png?n=100 заставит FastRWeb найти скрипт foo.png.R, найти его и вызвать run(n=100). Так, например, сценарий может быть таким простым, как

run <- function(n=10, ...) {
   p <- WebPlot(800, 600)
   n <- as.integer(n)
   plot(rnorm(n), rnorm(n), col=2, pch=19)
   p
}

Это потенциально может быть вызвано с помощью JavaScript для динамической загрузки изображений и их отображения.

Вы также можете подумать о shiny, хотя это более полное решение.

person Nick Kennedy    schedule 02.07.2015
comment
Спасибо. Я попробую это. Я знаю о shiny. Я люблю это. Я работал с ним. Но в этом случае я не могу использовать блестящие. - person Manoj G; 03.07.2015

Вы можете эффективно вызывать R из javascript, используя пакет Rserve. Доступна реализация клиента Rserve на языке javascript rserve-js.
Кроме того, вы можете найти его интересна httupv реализация R как службы, описанная в этом предложениях, необходимых для создания REST API-интерфейсов сервера R, которые я могу вызывать из внешнего приложения?.

person jangorecki    schedule 25.10.2015