2012-04-24 47 views
18

我必须开发一个Web界面,允许用户输入一些输入,这些输入将作为参数传递给Rscript并将结果返回给用户。R程序的Web界面

我的人一些问题谁也做了类似的网络接口:

  1. 哪些Web框架使用
  2. 什么是通信的Web界面和Rscripts(Web应用程序中最简单的方法架构)
  3. 我应该在服务器上安装R(如果是如何从Web界面劳克的Rscripts)
+1

http://opencpu.org/或者如果您需要与非web的互操作:http://www.rforge.net/Rserve/ – Hansi 2012-04-24 08:16:16

+2

非常相关:http://stats.stackexchange.com/questions/ 9699 /使用r-online-without-installed-it/9709#9709(RApache可能是你要找的) – nico 2012-04-24 08:44:34

+0

或者也可以参考:http:// stackoverflow。com/questions/1397097/r-web-application-introduction – 2012-04-24 08:46:46

回答

13

R有其自己的Web服务器,那么你可以做整个事情中R.那么就没有必要与选择一个框架,或得到打扰他们相互交谈等等 - 只要使用的R框架:如果你不喜欢这样的性能或其它原因

http://cran.r-project.org/web/packages/Rook/index.html

,几乎任何框架,将讨论与R拉上,所以请使用你熟悉的东西。我会使用Django并通过Rpy2调用R或运行Rserve进程,但是如果您可以使用PHP或Java进行编程,那么可以使用基于这些语言的框架。如果你不能用R编程,那么无论是学习Python还是使用Rook。

5

一个非常方便的方法是将Rstudio Server和Rook结合起来(请参阅链接的其他答案)。

Rstudio Server提供了一种非常简单的方式来设置R服务器,该服务器可供网络中的任何人访问。您通常会使用它来编辑并在该服务器上运行脚本。

Rook允许您通过混合文本和交互的HTML代码(如输入字段等)和R代码来轻松创建Web界面。一旦脚本正常工作,只需从Rstudio Server中启动它,并且任何用户(有权访问)都可以连接到Rstudio服务器上的IP。

我与googleVis一起使用此设置,我非常满意。

3

OpenCPU目前,在我看来, ,在R. Shiny中用于创建无状态(REST)Web服务的最先进的免费包是一个很好的框架,但是如果您计划使用免费社区版本,请注意它不处理并发调用。

+0

也许我缺乏想象力,但我不知道OpenCPU如何帮助我(轻松)在R中开发Web应用程序。它是一个Web框架吗?如果是这样,它是我见过的最糟糕的描述页面。 – 2015-09-29 14:09:54

+1

OpenCPU将R函数公开为REST服务。它基于RApache环境,因此它通过设计支持并发连接 - 多个用户同时访问您的Web服务并没有问题。也支持SL(Shiny在收费版本中只能兼得)。首先,您必须创建一个包含您的应用程序的常规R包(例如使用RStudio):R代码,HTML页面,CSS,JS脚本(jQuery,Bootstrap等)和其他资源。 HTML页面是静态的(不像ASP.NET中的预处理),但通过OpenCPU基于Ajax的JS库,您可以轻松修改它们。 – Bastian 2015-09-30 03:12:59

+0

在您的应用程序包准备就绪后,您可以按照常规方式进行安装 - 就这些了。 OpenCPU不包含任何“小部件”或“花哨的东西” - 它只是一种暴露你的应用程序的方式。这是稳定,快速和可靠的解决方案。我长时间在商业上使用它,并从未失望过。唯一的缺点是由于非常特殊的Java错误,不能使用基于Java的包(如xlsx)。另外请注意,你必须开始思考“RESTfuly”(无状态呼叫),这是当今的标准,但不是微不足道的(你可能会有粗糙的开始)。 – Bastian 2015-09-30 03:29:31