2015-07-02 3 views
3

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

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

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

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

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

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

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

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

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

Update:

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

Спасибо заранее,

Манодж G

+0

Другой вариант - экспортировать данные в переносимый формат (например, csv) и запустить Rscript в файле '.R', который найдет данные. –

+0

[rapier] (http://trestletech.com/2015/06/rapier-convert-r-code-to-a-web-api/) может быть для вас вариантом – hrbrmstr

+0

@ RomanLuštrik: Но как получить графику и показывать в приложении на лету? –

ответ

2

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

FastRWeb это инфраструктура, которая позволяет любому веб-сервер использовать R скрипты для создания контента на лету, например, веб-страницы или графики. URL-адреса сопоставляются с сценариями и могут иметь необязательные аргументы , которые передаются функции R, выполняемой из сценария. Например, http://my.server/cgi-bin/R/foo.png?n=100 заставит FastRWeb посмотреть на скрипт foo.png.R, исправить его и запустить вызов (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, хотя это более полное решение.

+0

Спасибо. Я попробую это. Я знаю, что «блестящий». Я люблю это. Я работал с ним. Но в этом случае я не могу использовать блестящий. –