R相比於matlab有哪些優勢?為什麼現在被越來越多的使用?

除了它免費之外,還有什麼其他更重要的優勢?比如演算法或者功能上的絕對優勢?


這是我在 Why R | learnR 中總結出的幾點R的優勢,其中一些可以認為是R對Matlab的優勢:

  1. 免費。不需要任何授權費用,對於個人和企業來說在成本方面都有一定的吸引力。
  2. 開源。源代碼的開放保證了你可以知道所有的細節,對於開發者和企業級應用是有價值的。
  3. 在統計、計量、數據挖掘、可視化群體中的流行度較高。這一點在國外可能更加成立,這就使得R成為了一個這類群體的大眾語言,描述問題和交流起來非常方便。(Seven quick facts about R)

  4. 語言靈活度高。作為一個動態類型的語言,R語言的設計是比較良好的,對於元編程、函數式編程支持度也很好,使得語言具有非常強的靈活性,允許開發者對語言進行計算(computing on language),以及進行非標準計算(non-standard evaluation),使得語言靈活性和可操作性大大提升。

  5. 可重複。R+Markdown等等工具產生的文檔和結論是完全可重複的,對於研究的科學性有貢獻。
  6. 資源豐富。對於使用者而言,R的開放性使得其社區巨大,接近6000個擴展包涵蓋了各種相關領域的方方面面。博客、文章、會議等等都很多。目前正有不少擴展包作者在把優秀的javascript library引入R,主要是數據可視化,繪製動態、互動、矢量數據圖像。對於開發者而言,許多開發方面的資源也可以使用,比如擴展包的自動化測試可以用 Travis CI 完成等等。對於一些高級使用者,同樣可以在R中通過Rcpp或Rcpp11擴展包無縫調用C++的代碼(比如實現高性能演算法、用C++裡面的一些矩陣計算庫等等),也可以通過rJava調用Java代碼,通過rClr調用.NET代碼...

  7. 社區強大。整個社區仍然處於高速成長當中,在stackoverflow上的問答活躍度也相當高。
  8. 前沿。不少統計、計量等等新工具在學術界發表,作者本人或者團隊會在第一時間、甚至文章發表前就發布基於這個文章的R擴展包,使得其幾乎總是走在學術界前沿。


摘自我在另一個問題的回答: http://www.zhihu.com/question/24486735/answer/27964263

R主要的優勢是統計,R的統計工具非常全,比如敝人用過奇葩的帕累托分布和Dip test,只要自動下載相應的package就可以使用。

Matlab的優勢是數值計算和模擬,向量化以後很多計算Matlab可以比任何語言都快(我試過比一些C矩陣的庫快)。敝人女友上學期Seminar的項目就是拿Matlab模擬傳染病模型。

補充一個,Mathematica也是一個數學編程語言,它的優勢是符號計算,比如你要計算不定積分,Mathematica比Matlab方便得多。聽說還有數學家還用Mathematica自動化數學證明。


推薦閱讀:

學習 MATLAB 有哪些書籍是值得推薦的?
數學建模一般用哪種軟體比較好?MATLAB是否有局限性?
matlab中運行gpuDevice為什麼那麼慢?
求推薦matlab編程比較好的書籍?
matlab做量化投資分析,怎麼學?

TAG:軟體 | 數學軟體 | MATLAB | R編程語言 | 數據處理 |