【问题标题】:A web interface to an R program [closed]R程序的Web界面[关闭]
【发布时间】:2012-05-04 20:41:13
【问题描述】:

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

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

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

【问题讨论】:

标签: r web rscript


【解决方案1】:

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

【讨论】:

  • 也许我缺乏想象力,但我不知道 OpenCPU 将如何帮助我(轻松)在 R 中开发 Web 应用程序。它是一个 Web 框架吗?如果是这样,它的描述页面是我见过的最糟糕的。
  • OpenCPU 将 R 函数公开为 REST 服务。它基于 RApache 环境,因此它在设计上支持并发连接 - 多个用户同时访问您的 Web 服务没有问题。还支持 SL(Shiny 仅在付费版本中同时进行变薄)。首先,您必须创建一个包含应用程序的常规 R 包(例如使用 RStudio):R 代码、HTML 页面、CSS、JS 脚本(jQuery、Bootstrap 等)和其他资源。 HTML 页面是静态的(不像 ASP.NET 那样进行预处理),但是使用基于 OpenCPU Ajax 的 JS 库,您可以轻松修改它们。
  • 在您的应用程序包准备好后,您可以按照通常的方式安装它——仅此而已。 OpenCPU 不包含任何“小部件”或“花哨的东西”——它只是一种在 Web 中公开应用程序的方式。它是稳定、快速和可靠的解决方案。我在商业上使用了很长时间,从未失望过。唯一的缺点是不能使用基于 Java 的包(如 xlsx),因为 Java 的一个非常特殊的错误。另请注意,您必须开始考虑“RESTfuly”(无状态调用),这是当今的标准,但并非微不足道(您可能有一个粗略的开始)。
  • 关于文档,嗯...我认为这是一个品味问题 :) 我已经找到了开始创建我的第一个应用程序的一切。 API 描述了如何从外部(同步)调用您的代码。 JS lib 通过异步查询服务器和更新页面内容来帮助您使页面更加动态。使用 GitHub 上的演示应用程序,您可以通过示例学习它。还有一个简单的手册阐明了一些重要问题(但有时使用谷歌比搜索页面更容易:))。在创建 RESTful 服务方面的一些先前经验将使事情变得更容易。
  • 我认为,您只是在两个 cmets 中对它的使用进行了比网站上容易访问的更好的描述,这一事实充分说明了该网站。无论如何,我认为你是对的,这可能是 OP 所追求的。
【解决方案2】:

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

        【解决方案5】:

        R 有自己的网络服务器,所以你可以在 R 中完成所有的事情。那么就没有必要为选择一个框架,或者让它们互相交谈等等而烦恼——只需使用一个 R 框架:

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

        如果您出于性能或其他原因不喜欢它,几乎任何框架都会以某种方式与 R 对话,因此请使用您熟悉的方式。我会使用 Django 并通过 Rpy2 调用 R 或运行 Rserve 进程,但如果您可以使用 PHP 或 Java 编程,则使用基于这些语言的框架。如果你除了 R 什么都不会编程,那么要么学习 Python,要么使用 Rook。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

          • 酷!不知道 RStudio 可以做到这一点!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-20
          • 2012-05-02
          • 2012-06-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-21
          相关资源
          最近更新 更多