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