官术网_书友最值得收藏!

前言

這本書的初衷是教會(huì)你用R編程,從基本的加載數(shù)據(jù)到編寫自定義函數(shù)(編寫出比其他R用戶更好的函數(shù))。但是從內(nèi)容上來(lái)說(shuō),這本書并不同于市面上其他的R導(dǎo)論類型的書籍,其更高遠(yuǎn)的目標(biāo)是幫助你成為數(shù)據(jù)科學(xué)家和計(jì)算機(jī)科學(xué)家。因此這本書著重傳授的R編程技能更貼近數(shù)據(jù)科學(xué)的要求。

本書內(nèi)容分為三大塊,其中每一塊都對(duì)應(yīng)一個(gè)實(shí)際的項(xiàng)目。考慮到每一個(gè)項(xiàng)目的內(nèi)容都比較多,因此每一塊又細(xì)分為幾章。選擇這三個(gè)項(xiàng)目是基于兩個(gè)方面的原因。首先,它們基本涵蓋了R語(yǔ)言編程的方方面面。具體來(lái)說(shuō),你將學(xué)到如何加載數(shù)據(jù),組合與拆解數(shù)據(jù)對(duì)象,玩轉(zhuǎn)R的系統(tǒng)環(huán)境,編寫自己的R函數(shù),以及使用R的所有編程工具,比如if else語(yǔ)句、for循環(huán)、S3類、R的包系統(tǒng)以及調(diào)試工具等。這三個(gè)項(xiàng)目也會(huì)涉及如何編寫向量化的R代碼,這種代碼風(fēng)格的好處在于其速度較快,并且能夠最大化地發(fā)揮R的潛能。

更為重要的是,數(shù)據(jù)科學(xué)中涉及很多“數(shù)據(jù)物流問(wèn)題”,而這三個(gè)精心挑選的項(xiàng)目將教你如何解決這些問(wèn)題。在和數(shù)據(jù)打交道的時(shí)候,所謂的數(shù)據(jù)物流問(wèn)題指的是如何高效無(wú)誤地存儲(chǔ)、檢索和操作大規(guī)模的數(shù)據(jù)。讀完這本書,你會(huì)發(fā)現(xiàn)我們的目標(biāo)不僅在于學(xué)習(xí)如何利用R語(yǔ)言進(jìn)行編程,更在于如何利用編程技術(shù)解決數(shù)據(jù)科學(xué)家在工作中會(huì)遇到的各種實(shí)際問(wèn)題。

并非所有程序員都需要成為數(shù)據(jù)科學(xué)家,因此這本書并不一定適合所有程序員。但是,如果你屬于以下兩類人之一,一定會(huì)發(fā)現(xiàn)這本書很有助益。

(1) 已經(jīng)把R當(dāng)作一個(gè)統(tǒng)計(jì)研究的工具,并且想要使用R編寫自己的函數(shù)和模擬。

(2) 想自學(xué)編程,并且感到有必要學(xué)習(xí)一門與數(shù)據(jù)科學(xué)相關(guān)的編程語(yǔ)言。

R語(yǔ)言的傳統(tǒng)強(qiáng)項(xiàng)是建模與作圖,市面上關(guān)于R語(yǔ)言的書籍基本都以這兩點(diǎn)為主線。相比之下,本書最大的特色之一就在于將R視為一門純粹的編程語(yǔ)言,而不是統(tǒng)計(jì)軟件。因此我們將淡化這兩大主線,將視角集中在編程語(yǔ)言特色上。這樣的視角看似有些偏頗,因?yàn)镽設(shè)計(jì)之初是作為一個(gè)開(kāi)源的統(tǒng)計(jì)軟件,其宗旨是幫助科學(xué)家解決數(shù)據(jù)分析問(wèn)題。它內(nèi)置了許多精良的數(shù)據(jù)分析函數(shù),并且在數(shù)據(jù)可視化和統(tǒng)計(jì)模型方面有著明顯的優(yōu)越性。因此,許多統(tǒng)計(jì)學(xué)家將R視為一個(gè)軟件,需要哪個(gè)函數(shù)就學(xué)習(xí)哪個(gè)函數(shù),而忽視其他的部分。

這樣的視角和學(xué)習(xí)方法其實(shí)也是有道理的,數(shù)據(jù)科學(xué)家在統(tǒng)計(jì)模型和數(shù)據(jù)可視化上的確應(yīng)該傾注大量的精力。想要從數(shù)據(jù)中得出可靠的結(jié)論,數(shù)據(jù)科學(xué)家需要具備扎實(shí)的專業(yè)知識(shí)、敏銳的洞察力和專注精神。我并不建議你在了解基本的數(shù)據(jù)科學(xué)理論和工具之前,就把大量精力放在學(xué)習(xí)計(jì)算機(jī)編程上。鑒于此,如果你想學(xué)習(xí)數(shù)據(jù)科學(xué)的基礎(chǔ)知識(shí),我向你推薦本書的姊妹篇R for Data Science本書中文版也將由人民郵電出版社圖靈公司出版。另外已經(jīng)出版的《數(shù)據(jù)科學(xué)入門》也是介紹數(shù)據(jù)科學(xué)基礎(chǔ)知識(shí)的重量級(jí)讀本。——編者注

即便如此,編程也應(yīng)該成為每一個(gè)數(shù)據(jù)科學(xué)家的必修課。學(xué)會(huì)編程不僅能夠讓你在分析數(shù)據(jù)時(shí)游刃有余,還能夠從各個(gè)方面提升你掌握數(shù)據(jù)科學(xué)的能力。關(guān)于這一點(diǎn),Greg Snow在2006年5月的R幫助郵件列表中有過(guò)一段十分精妙的比喻。使用R中現(xiàn)成的函數(shù)好比是乘坐公共汽車,而編寫自己的R函數(shù)則類似于自己駕駛汽車。

搭乘公共汽車再容易不過(guò)了。你只需要知道該搭乘哪一路車,在哪里上車,又在哪里下車(當(dāng)然,上車后你得投幣或者刷卡)。但是自己駕車就遠(yuǎn)沒(méi)有這么簡(jiǎn)單了:你需要一張地圖或者起碼是一條明確的導(dǎo)航信息(即使你已將路線記在腦子里);你還需要不時(shí)地給汽車加油,了解并遵守交通規(guī)則(你得有駕照)。相比于搭乘公共汽車,自己駕車的優(yōu)點(diǎn)是更加自由,你可以去公共汽車去不了的許多地方。并且對(duì)于某些需要換乘公共汽車的旅程來(lái)說(shuō),自駕往往能夠更快地到達(dá)目的地。

使用類似SPSS這樣的統(tǒng)計(jì)軟件就好比是搭乘公共汽車。對(duì)于某些基本和傳統(tǒng)的統(tǒng)計(jì)分析來(lái)說(shuō),SPSS簡(jiǎn)單易用。但是,當(dāng)你想做一些SPSS沒(méi)有內(nèi)置模塊支持的分析時(shí),就十分無(wú)助了。

R就好比一輛4驅(qū)SUV(當(dāng)然,R不需要汽油,因此環(huán)保),車背馱了一輛山地自行車,車頂備了一艘小型皮艇,車內(nèi)還有慢跑鞋、登山裝備和洞穴探險(xiǎn)裝備。你想去哪兒,R都能做到,只要你肯花時(shí)間學(xué)習(xí)如何使用各種裝備。但是,與像公共汽車的SPSS相比,學(xué)習(xí)R需要更多的時(shí)間和精力。

——Greg Snow

Greg做這個(gè)對(duì)比的時(shí)候,是默認(rèn)大家把R當(dāng)作一門編程語(yǔ)言來(lái)使用的;換句話說(shuō),你知道如何用R語(yǔ)言編程以實(shí)現(xiàn)自己想要的分析。如果你只是使用R的眾多包提供的現(xiàn)成函數(shù)的話,那么R對(duì)于你來(lái)說(shuō)只相當(dāng)于另一個(gè)版本的SPSS;也就是說(shuō),你把它當(dāng)作了一輛公共汽車,因此你能到達(dá)的地方也十分有限。

靈活性對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō)至關(guān)重要。對(duì)于不同的數(shù)據(jù),統(tǒng)計(jì)模型和數(shù)據(jù)模擬在細(xì)節(jié)上會(huì)有差異。如果不能因地制宜地使用合適的方法,你就可能設(shè)定不現(xiàn)實(shí)的模型假設(shè),而使用現(xiàn)成的但又不太匹配手頭數(shù)據(jù)的方法。

這本書的目的恰恰是要幫助你從公共汽車的乘客轉(zhuǎn)變?yōu)镾UV的駕駛員。本書面向廣大的編程初學(xué)者。書中既不會(huì)討論關(guān)于計(jì)算機(jī)科學(xué)的任何理論知識(shí),比如大O()和小o()的區(qū)別,也不會(huì)討論編程語(yǔ)言的底層細(xì)節(jié),比如惰性求值(lazy evaluation)機(jī)制。如果想學(xué)習(xí)計(jì)算機(jī)科學(xué)的理論知識(shí),這些高階的細(xì)節(jié)固然重要,但是對(duì)于初學(xué)編程的人來(lái)說(shuō)不是必需的。

我所準(zhǔn)備做的,是通過(guò)三個(gè)精心挑選的例子,把R編程所需要的方方面面的知識(shí)都傳授給你。這些例子不會(huì)過(guò)于冗長(zhǎng),并且易于理解。

作為RStudio的高級(jí)培訓(xùn)師,我已多次使用這些例子講授R課程。我發(fā)現(xiàn),實(shí)例教學(xué)有利于學(xué)習(xí)者快速理解和掌握抽象的編程概念。通過(guò)實(shí)例學(xué)習(xí)編程的另一個(gè)好處是,它提供了絕佳的練習(xí)機(jī)會(huì)。學(xué)習(xí)編程就像學(xué)習(xí)一門新的語(yǔ)言。通過(guò)學(xué)習(xí)書中提供的這些例子,并動(dòng)手實(shí)踐,你的R編程學(xué)習(xí)之路將變得更加平坦。

本書的姊妹篇叫作R for Data Science,即將出版。這本書詳細(xì)介紹了如何用R作圖、建模、編寫報(bào)表,等等。它更注重?cái)?shù)據(jù)科學(xué)的實(shí)用技能,并要求讀者具備一定的數(shù)據(jù)科學(xué)基礎(chǔ)知識(shí)。本書則側(cè)重于如何使用R編程。它并不要求讀者具有數(shù)據(jù)科學(xué)技能,當(dāng)然如果具備一定的基礎(chǔ)知識(shí)對(duì)于學(xué)習(xí)本書的內(nèi)容也是大有裨益的。如果你同時(shí)掌握了數(shù)據(jù)科學(xué)和編程技能,那么恭喜你,你已經(jīng)成為一位響當(dāng)當(dāng)?shù)臄?shù)據(jù)科學(xué)家,不僅可以挺直腰板找老板加薪了,還在數(shù)據(jù)科學(xué)領(lǐng)域更具話語(yǔ)權(quán)。

排版約定

本書使用下列排版約定。

· 楷體

表示新術(shù)語(yǔ)。

· 等寬字體(constant width)

表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫(kù)、數(shù)據(jù)類型、環(huán)境變量、語(yǔ)句和關(guān)鍵字等。

· 加粗等寬字體(constant width bold)

表示應(yīng)該由用戶輸入的命令或其他文本。

· 斜體等寬字體(constant width italic

表示應(yīng)該用用戶輸入的值或者根據(jù)上下文確定的值替換的文本。

該圖標(biāo)表示此處有提示或建議

該圖標(biāo)表示一般性注解

該圖標(biāo)表示警告或者需要額外注意

Safari?Books Online

Safari Books Online(http://www.safaribooksonline.com)是應(yīng)運(yùn)而生的數(shù)字圖書館。它同時(shí)以圖書和視頻的形式出版世界頂級(jí)技術(shù)和商務(wù)作家的專業(yè)作品。技術(shù)專家、軟件開(kāi)發(fā)人員、Web設(shè)計(jì)師、商務(wù)人士和創(chuàng)意專家等,在開(kāi)展調(diào)研、解決問(wèn)題、學(xué)習(xí)和認(rèn)證培訓(xùn)時(shí),都將Safari Books Online視作獲取資料的首選渠道。

對(duì)于組織團(tuán)體、政府機(jī)構(gòu)和個(gè)人,Safari Books Online提供各種產(chǎn)品組合和靈活的定價(jià)策略。用戶可通過(guò)一個(gè)功能完備的數(shù)據(jù)庫(kù)檢索系統(tǒng)訪問(wèn)O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology以及其他幾十家出版社的上千種圖書、培訓(xùn)視頻和正式出版之前的書稿。要了解Safari Books Online的更多信息,我們網(wǎng)上見(jiàn)。

聯(lián)系我們

請(qǐng)把對(duì)本書的評(píng)價(jià)和問(wèn)題發(fā)給出版社。

美國(guó):

O'Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中國(guó):

北京市西城區(qū)西直門南大街2號(hào)成銘大廈C座807室(100035)

奧萊利技術(shù)咨詢(北京)有限公司

O'Reilly的每一本書都有專屬網(wǎng)頁(yè),你可以在那兒找到本書的相關(guān)信息,包括勘誤表、示例代碼以及其他信息。本書的網(wǎng)站地址是:

http://shop.oreilly.com/product/0636920028574.do

對(duì)于本書的評(píng)論和技術(shù)性問(wèn)題,請(qǐng)發(fā)送電子郵件到:

bookquestions@oreilly.com

要了解更多O'Reilly圖書、培訓(xùn)課程、會(huì)議和新聞的信息,請(qǐng)?jiān)L問(wèn)以下網(wǎng)站:

http://www.oreilly.com

我們?cè)贔acebook的地址如下:http://facebook.com/oreilly

請(qǐng)關(guān)注我們的Twitter動(dòng)態(tài):http://twitter.com/oreillymedia

我們的YouTube視頻地址如下:http://www.youtube.com/oreillymedia

致謝

本書的寫作和出版得到了很多優(yōu)秀人士的支持和幫助,包括本書的兩位編輯Courtney Nash和Julie Steele,以及負(fù)責(zé)版面設(shè)計(jì)、校對(duì)及書頁(yè)索引的O'Reilly團(tuán)隊(duì)成員。另外,Greg Snow慷慨地允許我在前言中引用他的話,在此表示感謝。

我還要感謝Hadley Wickham,他幫助我形成了自己思考R和傳授R的方式。這本書中的很多想法和內(nèi)容都來(lái)自“統(tǒng)計(jì)405”這門課。我在萊斯大學(xué)讀博士的時(shí)候是這門課的助教,而Hadley正是這門課的講師。

此外,我代表RStudio舉辦過(guò)主題為“R與數(shù)據(jù)科學(xué)簡(jiǎn)介”的研討會(huì),參與研討會(huì)的學(xué)生和老師都給了我很多靈感與建議,在此向他們表示感謝。還要特別感謝我的助教們,他們是Josh Paulson、Winston Chang、Jaime Ramos、Jay Emerson和Vivian Zhang。

感謝JJ Allaire以及我在RStudio的其他同事,他們創(chuàng)造并分享了著名的RStudio IDE(RStudio集成開(kāi)發(fā)環(huán)境),極大地簡(jiǎn)化了人們使用、傳授和編寫R的方式。

最后,我要感謝我的妻子Kristin,在本書的寫作過(guò)程中給予我莫大的支持與理解。

主站蜘蛛池模板: 社会| 江源县| 宣城市| 永川市| 玉树县| 屏边| 永登县| 时尚| 龙岩市| 滨州市| 泗阳县| 玉门市| 夏河县| 巴中市| 望江县| 台中市| 牟定县| 青川县| 金湖县| 阜新| 石棉县| 革吉县| 广饶县| 高雄县| 老河口市| 淳安县| 乐至县| 喀什市| 大田县| 临洮县| 嵊泗县| 五华县| 达拉特旗| 姚安县| 屯留县| 许昌县| 佳木斯市| 望都县| 安溪县| 诸暨市| 休宁县|