作品介紹

R語言編程藝術(shù)


作者:Norman     整理日期:2021-09-26 14:06:36


  r是一種用于統(tǒng)計(jì)計(jì)算與做圖的開源軟件,同時(shí)也是一種編程語言,它廣泛應(yīng)用于企業(yè)和學(xué)術(shù)界的數(shù)據(jù)分析領(lǐng)域,正在成為*通用的語言之一。由于近幾年數(shù)據(jù)挖掘、大數(shù)據(jù)等概念的走紅,r也越來越多地被人關(guān)注。截至本文完成之日,cran(http://cran.r-project.org/)上共有4383個(gè)包,涉及統(tǒng)計(jì)、化學(xué)、經(jīng)濟(jì)、生物、醫(yī)學(xué)、心理、社會學(xué)等各個(gè)學(xué)科。不同類型的公司,比如google、輝瑞、默克、美國銀行、洲際酒店集團(tuán)和殼牌公司都在使用它,同時(shí)以s語言環(huán)境為基礎(chǔ)的r語言由于其鮮明的特色,一出現(xiàn)就受到了統(tǒng)計(jì)專業(yè)人士的青睞,成為國外大學(xué)里相當(dāng)標(biāo)準(zhǔn)的統(tǒng)計(jì)軟件。
  一直以來,國內(nèi)外關(guān)于r語言的著作都是以統(tǒng)計(jì)學(xué)專業(yè)的視角來介紹r語言的,對r語言本身的特性講解得并不詳盡,而軟件自帶的官方文檔又顯得過于技術(shù),不那么親民。另一方面,很多接觸r的朋友都來自非計(jì)算機(jī)專業(yè),沒有接受過編程訓(xùn)練,他們使用r的時(shí)候,編寫出來的代碼通常只能算是一條條命令的集合,面對更復(fù)雜的問題,常常束手無策。記得在某屆r語言大會上,有位sas陣營的朋友說,他看到演講者所展示的代碼里只有函數(shù)調(diào)用,沒有編程的東西,所以他覺得r不能算一種編程語言。其實(shí),他錯(cuò)了,此時(shí)你手里這本書,覆蓋了其他大部分r語言圖書沒有涉及的編程主題。這本書就如同r語言的九陽神功秘籍,當(dāng)神功練成,任督二脈一旦打通,再學(xué)習(xí)針對某一領(lǐng)域應(yīng)用的函數(shù)或包就如庖丁解牛一般。順便提一下,據(jù)微博上的小道消息,前面提到的那位朋友*近也開始學(xué)r了。
  本書的特點(diǎn)表現(xiàn)在以下幾個(gè)方面:
  **,對讀者的統(tǒng)計(jì)學(xué)知識和編程水平要求并不高。與很多r語言書籍不同,這本書并不需要很深的統(tǒng)計(jì)學(xué)功底,它從純語言的角度入手來講解r。對于有一定編程經(jīng)驗(yàn)卻沒什么統(tǒng)計(jì)學(xué)背景的人來說,讀這本書會比較順暢,讀者就可以重點(diǎn)關(guān)注r語言的特性在數(shù)據(jù)分析方面的應(yīng)用。在有的地方,作者也會提醒那些有其他語言編程經(jīng)驗(yàn)的人應(yīng)該注意r語言有什么不同之處。而對于沒有編程經(jīng)驗(yàn)又想使用r做數(shù)據(jù)分析的人來說,這本書也是學(xué)習(xí)編程的絕佳教材。
  第二,專注于r語言編程。作者沒有把這本書定位為菜譜式的手冊,也不像有些r語言圖書那樣介紹完統(tǒng)計(jì)學(xué)某方面應(yīng)用之后簡單地把r語言代碼擺出來。翻開這本書的目錄,你幾乎看不到統(tǒng)計(jì)學(xué)的術(shù)語。本書系統(tǒng)介紹了r語言的各種數(shù)據(jù)結(jié)構(gòu)和編程結(jié)構(gòu)、面向?qū)ο缶幊谭椒、socket網(wǎng)絡(luò)編程、并行計(jì)算、代碼調(diào)試、程序性能提升以及r語言與其他語言的接口等主題。書中也提到了不少編程的小技巧,這都是作者多年編程經(jīng)驗(yàn)的總結(jié)。
  第三,豐富的案例分析。作者matloff教授是位計(jì)算機(jī)科學(xué)家,同時(shí)也是位統(tǒng)計(jì)學(xué)家,有多年的教學(xué)經(jīng)驗(yàn),也做過統(tǒng)計(jì)學(xué)方法論的顧問。除了正文中的例子之外,本書還有44個(gè)擴(kuò)展案例,很多案例源自作者親身參與過的咨詢項(xiàng)目。雖然本書沒有講解任何統(tǒng)計(jì)模型,但是擴(kuò)展案例都是和數(shù)據(jù)分析相關(guān)的,比如對鮑魚數(shù)據(jù)的重新編碼(第2章)、尋找異常值(第3章)、文本詞匯索引(第4章)、學(xué)習(xí)中文方言的輔助工具(第5章)等。通過學(xué)習(xí)這些案例,讀者不僅能學(xué)到r語言的每種概念如何運(yùn)作,也會學(xué)到如何把這些概念組合到一起成為有用的程序。比如第10章介紹了socket網(wǎng)絡(luò)編程之后,就用一個(gè)擴(kuò)展案例講解如何用socket實(shí)現(xiàn)并行計(jì)算,這為第16章詳細(xì)講解并行計(jì)算做好了鋪墊。在很多案例里,作者討論了好幾種設(shè)計(jì)方案,并比較了這幾種方案的不同之處,以回答“為什么這樣做”,這對于缺少編程經(jīng)驗(yàn)的人來說,是非常好的安排。
  本書第1章簡要介紹了r語言的幾種數(shù)據(jù)結(jié)構(gòu)和編程基礎(chǔ),其余章節(jié)可分為三大部分。
  **部分(第2~6章)詳細(xì)介紹r的幾種主要的數(shù)據(jù)結(jié)構(gòu):向量、矩陣、列表、數(shù)據(jù)框和因子等。對很多人來說,r復(fù)雜多變的數(shù)據(jù)結(jié)構(gòu)真的是一只攔路虎。而本書從*簡單的向量開始,一步一步引導(dǎo)讀者認(rèn)識并掌握各種數(shù)據(jù)結(jié)構(gòu)。
  第二部分(第7~13章)涉及編程方面:編程結(jié)構(gòu)和面向?qū)ο筇匦、輸?輸出、字符串處理以及繪圖。值得一提的是第13章,這章主要講解的是r語言的調(diào)試。很多朋友在實(shí)際工作中有這樣的經(jīng)歷,你可能用了一個(gè)小時(shí)就寫好代碼,卻用了一天的時(shí)間來調(diào)試?墒堑侥壳盀橹惯沒有在其他圖書上看到與r語言調(diào)試相關(guān)的內(nèi)容,甚至也很少見到關(guān)于其他編程語言調(diào)試的圖書。本書剛好填補(bǔ)了這方面的空白。如果讀者仔細(xì)讀完第13章,并實(shí)踐其中的調(diào)試技巧,一定能事半功倍,也就能少熬點(diǎn)兒夜,有延長壽命的功效。本書的作者同時(shí)也著有《調(diào)試的藝術(shù)》(theart of debugging),相信他在r語言調(diào)試方面的功力也是相當(dāng)深厚的。
  第三部分(第14~16章)介紹的是更高級的內(nèi)容,比如執(zhí)行速度和性能的提升(第14章)、r語言與c/c++或python混合編程(第15章)以及r語言并行計(jì)算(第16章),雖然*后一部分屬于編程的高級內(nèi)容,但如果讀者從前往后一直學(xué)下來,隨著能力的提高,也是可以讀懂的。
  本人從2007年開始接觸r語言,那時(shí)候市面上幾乎沒有r語言方面的書籍。當(dāng)時(shí)我關(guān)于r語言的所有信息幾乎都是來自統(tǒng)計(jì)之都(http://cos.name)和謝益輝的博客(http://yihui.name)。2008年冬天,統(tǒng)計(jì)之都成功舉辦了“**屆中國r語言會議”,來自各地的r語言用戶們齊聚一堂,交流心得。從那以后,每年的r語言會議都會在北京和上海舉辦。這幾年來,統(tǒng)計(jì)之都的隊(duì)伍也逐漸壯大,比如本書的其他三位主要譯者:邱怡軒、潘嵐鋒和熊熹,當(dāng)年他們參加r語言會議的時(shí)候還是人大統(tǒng)計(jì)學(xué)院大一、大二的學(xué)生,后來也成為r語言社區(qū)的領(lǐng)軍人物。去年我們接到本書的翻譯任務(wù)時(shí),他們?nèi)朔謩e收到了美國普度大學(xué)、愛荷華州立大學(xué)以及明尼蘇達(dá)大學(xué)的錄取通知,現(xiàn)在已經(jīng)在美國留學(xué)深造。希望有越來越多的人加入統(tǒng)計(jì)之都的大家庭,和大家一起成長,為中國統(tǒng)計(jì)事業(yè)的發(fā)展盡自己的一份力。
  在翻譯過程中,幾位譯者力求忠實(shí)于原文,但糾正了原書的幾處錯(cuò)誤,同時(shí)也兼顧中文表達(dá)的流暢,不過譯文中可能仍有不當(dāng)之處,歡迎讀者予以指正。
  除了本人以及前面提到的三位譯者之外,統(tǒng)計(jì)之都的三位老朋友林宇、嚴(yán)紫丹和程豪也參與了本書部分章節(jié)的校審和初稿翻譯,在此表示感謝。全書譯文*后由本人統(tǒng)稿,如有錯(cuò)誤之處,均由本人承擔(dān)。
  也感謝機(jī)械工業(yè)出版社的吳怡編輯,她給予了我們細(xì)心的幫助。
  統(tǒng)計(jì)之都的圖書出版欄目(網(wǎng)址是http://cos.name/books/)有本書的頁面,讀者可以在這里下載本書的數(shù)據(jù)和代碼,也可以留言提問。





上一本:數(shù)控車床操作技能訓(xùn)練 下一本:原來手賬這樣玩

作家文集

下載說明
R語言編程藝術(shù)的作者是Norman,全書語言優(yōu)美,行文流暢,內(nèi)容豐富生動(dòng)引人入勝。為表示對作者的支持,建議在閱讀電子書的同時(shí),購買紙質(zhì)書。

更多好書