如何讓R語言寫出來的程序生成一個獨立的可執行文件?

比如我想讓不懂R語言的人利用我用R寫的程序,對方只需要輸入幾個簡單的初始變數即可,並沒有必要安裝整個R的環境,該如何操作?


Shiny 很符合你所敘述的要求,它是由 RStudio 公司開發的一個針對 R 的互動式 web 應用。

不需要了解許多 HTML, CSS, JavaScript 方面的知識,一點點極為基礎的就好,就可以把自己的R 腳本變成一個 web 上的應用。比如你寫了一個預測感冒的演算法,通過 shiny 放到了 web 上,別的用戶就可以上傳他們自己的數據,來預測感冒或類似的疾病。官網上有很多簡單的例子,樣子大概是這樣的。

yhat 同樣是一個很cool的工具,你可以把你的 R function 或者某種演算法放在網上, yhat 就會提供一個 API 給所有人,別人就可以通過這個介面使用你的函數,載入自己的數據得到相應的結果。不管你是數據分析師,工程師也好,都會覺得這樣的工具很實用,有開源的幫助對大家都是一件好事。 同樣,你如果不會建網站,不懂網頁前端的知識也沒有關係。

另外提一下 OpenCPU,同樣能實現上述功能,不過更加靈活,但對 web programming 的要求就要高一些。

coursera 上的一門 data product 的課程詳細介紹了shiny 和 yhat 還有一些其它的東西。


建議用shiny放在雲端,否則目前沒有比較好的辦法。


在 Linux 或者 OSX 環境下可以使用 Rscript 完成:

先在終端輸入

$ which Rscript
/usr/bin/Rscript

來查看你的 Rscript 在哪個位置

然後打開一個文本文檔, 輸入:

#!/usr/bin/Rscript
text &<- commandArgs(T) cat(text, sep = " ")

存為 rMyEcho.R 然後再在終端 cd 到這個文件的目錄下並 chmod 就可以運行, 這個程序是一個簡單的 echo 程序, 沒有什麼技術性

$ chmod u+x rMyEcho.R
$ ./rMyEcho.R Hi!
Hi!

更多地用法可以參考我的這篇博客 Make R Scripts Running as Executable Programs


使用Shiny現在有一個問題,我想通過Shiny構建Restful-API,來取代Django的方式。貌似現在還沒有太多案例啊。


Rstudio+Github+Shiny

設定好工作目錄

library(shiny)

runApp()


推薦閱讀:

python 可不可以像R那樣保存內存中的變數?
當下對於量化投資有用的R語言包有哪些?
Python 在數據分析工作中的地位與 R 語言、SAS、SPSS 比較如何?
時間序列建模問題,如何準確的建立時間序列模型?
面對有大量缺失值的數據應該怎樣處理比較合理?

TAG:解釋器 | R編程語言 |