Integrating R and its graphics with existing Javascript/HTML Application

[亡魂溺海] 提交于 2019-12-22 07:50:08

问题


I have an existing Javascript/HTML Application. I wanted to use power of R Programming's scientific computing and graphics.

My aim is to,

  1. Send some data from Javascript app.
  2. Call predefined R functions with the data input.
  3. Get the output get the output in the form of both text and graphics.
  4. Display it in the HTML page.

How to achieve this,

  1. Should I run R continuously, use something like web sockets and connect to R? If doing How to pass R scripts to execute and get the output pack?

  2. There is Rserve. There are some nodeJS implementation for Rserve. But problem with this is, each line of code should be passed through the evaluate commands. Even though if I do so, how to handle the graph output?

  3. I explored a bit of openCPU. If using openCPU R package, R should be continuously Running with opencpu library and each we start R and openCPU, it starts with different port number. And if i close the R session, opencpu server also terminates.

  4. If I install standalone opencpu server in my machine, how to use R with this? I've installed openCPU standalone server and a kind of stuck after that.

How should I proceed, What should I do to accomplish my task. I'm like a kind of don't know which direction to go. Please throw some light on this. I'm sure most people would need this.

I have worked with shiny, but in this case, I can not make use of it. Need to connect R from external Web Application.


回答1:


FastRWeb sounds like it would be perfect for your needs. From the documentation:

FastRWeb is an infrastructure that allows any webserver to use R scripts for generating content on the fly, such as web pages or graphics. URLs are mapped to scripts and can have optional arguments that are passed to the R function run from the script. For example http://my.server/cgi-bin/R/foo.png?n=100 would cause FastRWeb to look up a script foo.png.R, source it and call run(n="100"). So for example the script could be as simple as

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

This can potentially then be called using JavaScript to dynamically load images and display them.

You might also like to think about shiny, though that's more of a complete solution.




回答2:


You can call R from javascript efficiently using Rserve package. There is javascript implementation of Rserve client available rserve-js.
Additionally you may find it interesting the httupv implementation of R as a service described in this Suggestions needed for building R server REST API's that I can call from external app?.



来源:https://stackoverflow.com/questions/31190468/integrating-r-and-its-graphics-with-existing-javascript-html-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!