R語言的未來發(fā)展趨勢
雖然R語言有諸多優(yōu)勢,但它并不是萬能的——它畢竟是統(tǒng)計編程類語言。受到其算法架構的通用性以及速度性能方面的影響,因此其初始設計完全基于單線程和純粹的內存計算。雖然一般情況下無關R的使用,但在當今大數(shù)據(jù)條件下,這兩個設計思路的劣勢逐漸變得愈加刺眼。好在R的一些優(yōu)秀的擴展性包解決了上述問題,例如:
snow 支持 MPI、PVM、nws、Socket 通信,解決單線程和內存限制;
multicore 適合大規(guī)模計算環(huán)境,主要解決單線程問題;
parallel R 2.14.0 版本增加的標準包,整合了 snow 和 multicore 功能;
R + Hadoop 在 Hadoop 集群上運行R代碼;
RHIPE 提供了更友好的R代碼運行環(huán)境,解決單線程和內存限制;
Segue 利用 Amazon’s Web Services(EC2)。
這里需要著重提一下 parallel 包,該包是R核心團隊為了解決大數(shù)據(jù)計算問題而在標準安裝程序下新增的功能包
一些誤區(qū)
很多人認為R語言是 GNU 開源項目軟件,因此軟件的使用是“沒有任何保證”的。但在美國,R的計算結果被 FDA(Food and Drug Administration) 所承認;并且有報告指出與其他商業(yè)軟件相比,R的 Bug 數(shù)量非常少【注:UCLA (2006)。 R relative to statistical packages. Technical report, UCLA.】。
R 開發(fā)的核心團隊對于R的新功能持異常謹慎的態(tài)度,比如 cairographics 從 2007 年開始醞釀,直到上一個大版本(2011年)才引入到R標準安裝程序;byte-compile 功能更是經(jīng)歷了從 1999-2011年近 12 年的孵化【注:Ripley,B. (2011)。 The r development process. Technical report,Department of Statistics,University of Oxford.】。從這個角度講,R語言的代碼質量以及運算結果的可信性是完全可以保證的。
當然,這里所說的是R的標準安裝程序包,并不代表所有擴展包的質量。畢竟 3400+ 的擴展包質量良莠不齊,雖然不乏一些優(yōu)秀的包(如 Rcpp、RODBC、VGAM、rattle),但必然存在一些擴展包質量不佳的情況。
應用的思考
R 語言并不是人人都能接觸到的語言,相對要小眾很多,有些人即便接觸到?jīng)]準也搞不清楚R到底有什么用途。對于走上這條路的人,經(jīng)常會有一些應用困難,比如從個人學習角度而言。
雖然R語言的設計之初就是避免通過大量編程實現(xiàn)統(tǒng)計算法,但最基本的編程能力還是需要的,因此對于一般非計算機專業(yè)的工作者來說無疑提高了難度。
還有很多人提到,R語言的學習曲線非常陡峭。但從我多年的使用經(jīng)驗上看,陡峭的學習曲線并不是因為R語言本身,而是隱藏在后面的統(tǒng)計知識很難在短時間內掌握的緣故。
從公司商業(yè)應用的角度而言,也存在一些不可回避的問題。
首先是人力資源成本如何核算。
軟件成本問題,由于R是自由軟件,可以隨時隨地下載,因此對于企業(yè)來說如何度量成本是一個問題。
R的技能核定并沒有官方或機構標準,簡歷上“熟練使用R語言”可能沒有任何意義。
實際上,即便沒有上述兩個問題,企業(yè)想招到R相關的人才也不那么簡單。
對于大量工作已由其他軟件實現(xiàn)(比如用 SAS)的公司來講,轉化成本很高。
技術支持獲取的問題。
R語言在現(xiàn)實中的應用
R語言在現(xiàn)實中的應用有哪些?主要有以下幾種?
1.數(shù)據(jù)科學
“哈佛商業(yè)評論”將數(shù)據(jù)科學家命名為“21世紀最性感的工作”。 Glassdoor將其命名為2016年的“年度最佳工作”。隨著IoT設備的誕生,創(chuàng)建了可用于做出更好決策的TB級和TB級數(shù)據(jù),數(shù)據(jù)科學是一個沒有其他方法可以追溯到的領域。
簡單的解釋說,數(shù)據(jù)科學家是一位具有額外資產(chǎn)的統(tǒng)計學家:計算機編程技能。 像R語言這樣的編程語言給數(shù)據(jù)科學家超能力,讓他們能夠實時收集數(shù)據(jù),執(zhí)行統(tǒng)計和預測分析,創(chuàng)建可視化和向利益相關者傳達可行動的結果。
大多數(shù)數(shù)據(jù)科學課程包括R語言課程中,因為它是數(shù)據(jù)科學家最喜歡的工具。
2.統(tǒng)計計算
R語言是統(tǒng)計學家中最流行的編程語言。 事實上,它最初是由統(tǒng)計學家為統(tǒng)計學家建立的。 它有一個豐富的軟件包存儲庫,擁有超過9100個軟件包,您可以用于計算每個統(tǒng)計功能。
R語言的表達語法允許研究人員 - 即使是來自非計算機科學背景的研究人員,可以從各種數(shù)據(jù)源快速導入,清理和分析數(shù)據(jù)。
R語言還具有圖表功能,這意味著您可以繪制數(shù)據(jù)并從任何數(shù)據(jù)集創(chuàng)建有趣的可視化圖形。
3.機器學習
R語言已經(jīng)在預測分析和機器學習中發(fā)現(xiàn)了很多用途。它具有用于常見ML任務的各種包,如線性和非線性回歸,決策樹,線性和非線性分類等等。
從機器學習愛好者到研究人員的每個人都可使用R語言來實現(xiàn)機器學習算法,如金融,遺傳學研究,零售,營銷和醫(yī)療保健等領域。
評論