2012-04-24 79 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