将R及其图形与现有的Javascript/HTML应用程序集成

Integrating R and its graphics with existing Javascript/HTML Application

本文关键字:Javascript HTML 集成 应用程序 图形      更新时间:2023-09-26

我有一个现有的Javascript/HTML应用程序。我想利用R Programming的科学计算和图形技术。

我的目标是,

  1. 从Javascript应用程序发送一些数据
  2. 使用数据输入调用预定义的R函数
  3. 获取输出以文本和图形的形式获取输出
  4. 在HTML页面中显示它

如何实现这一点,

  1. 我应该连续运行R,使用类似web sockets的东西并连接到R吗?如果在做如何传递R脚本来执行并获得输出包?

  2. 有Rserve。Rserve有一些nodeJS的实现。但问题是,每一行代码都应该通过evaluate命令传递。即使我这样做了,如何处理图形输出?

  3. 我探索了一些openCPU。如果使用openCPU R包,R应该与opencpu库一起连续运行,并且我们每次启动R和openCPU时,它都以不同的端口号启动。如果我关闭R会话,opencpu服务器也会终止。

  4. 如果我在我的机器中安装独立的opencpu服务器,如何将R与此配合使用?我安装了openCPU独立服务器,之后有点卡住了。

我应该如何着手,我应该做些什么来完成我的任务。我有点不知道该往哪个方向走。请澄清一下。我相信大多数人都需要这个。

我使用过shiny,但在这种情况下,我无法使用它。需要从外部Web应用程序连接R。

FastRWeb听起来非常适合您的需求。来自文件:

FastRWeb是一个允许任何Web服务器使用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来动态加载图像并显示它们。

你可能也喜欢考虑闪亮,尽管这是一个更完整的解决方案。

您可以使用Rserve包从javascript高效地调用R。有Rserve客户端的javascript实现可用的rserv-js
此外,您可能会发现有趣的是,httupv实现R作为构建R服务器REST API所需的服务,我可以从外部应用程序调用该服务?。