19

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

对于做过类似网络界面的人,我有一些问题:

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

6 回答 6

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。

于 2012-04-24T11:06:44.217 回答
9

Rstudio 有一个名为 Shiny 的新服务器,它使用 node.js 作为 UI:

https://github.com/rstudio/shiny-server

于 2013-04-18T18:45:17.660 回答
7

Rstudio 为 R 提供了一个网络界面,请参见http://rstudio.org/docs/server/getting_started

于 2012-04-24T09:45:41.147 回答
5

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

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

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

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

于 2012-06-16T09:01:49.637 回答
3

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

于 2015-09-29T13:50:05.943 回答
0

R 网站上有一个很好的列表 - http://cran.r-project.org/doc/FAQ/R-FAQ.html#R-Web-Interfaces

于 2013-04-19T09:23:46.313 回答