《R語(yǔ)言經(jīng)典實(shí)例》涵蓋200多個(gè)R語(yǔ)言實(shí)用方法 ,可以幫助讀者快速而有效地使用R進(jìn)行數(shù)據(jù)分析。R語(yǔ)言給我們提供了統(tǒng)計(jì)分析酣一切工具,但是R本身 的結(jié)構(gòu)可能有些難于掌握。本書(shū)提供的這些面向任務(wù)、簡(jiǎn)明的R語(yǔ)言方法包含了從基本的分析任務(wù)到輸入 和輸出、常用統(tǒng)計(jì)分析、繪圖、線(xiàn)性回歸等內(nèi)容,它們可以讓你馬上應(yīng)用R高效地工作。
每一個(gè)R語(yǔ)言方法都專(zhuān)注于一個(gè)特定的問(wèn)題,隨后的討論則對(duì)問(wèn)題的解決方案給出解釋?zhuān)㈥U釋該方 法的工作機(jī)理。對(duì)于R的初級(jí)用戶(hù),《R語(yǔ)言經(jīng)典實(shí)例》將幫助你步入R的殿堂;對(duì)于R的資深用戶(hù),本書(shū)將 加深你對(duì)R的理解并拓展你的視野。通過(guò)本書(shū),你可以使你的分析工作順利完成并學(xué)習(xí)更多R語(yǔ)言知識(shí)。
《R語(yǔ)言經(jīng)典實(shí)例》涵蓋200多個(gè)R語(yǔ)言實(shí)用方法,可以幫助讀者快速而有效地使用R進(jìn)行數(shù)據(jù)分析。本書(shū)將幫助你步入R的殿堂;對(duì)于R的資深用戶(hù),本書(shū)將加深你對(duì)R的理解并拓展你的視野。通過(guò)本書(shū),你可以使你的分析工作順利完成并學(xué)習(xí)更多R語(yǔ)言知識(shí)。本書(shū)由蒂特著。
前言
R軟件是進(jìn)行統(tǒng)計(jì)分析、繪圖和統(tǒng)計(jì)編程的強(qiáng)大工具。現(xiàn)在成千上萬(wàn)的人用它來(lái)進(jìn)行日常的重要統(tǒng)計(jì)分析。R軟件是一個(gè)自由、開(kāi)源的軟件平臺(tái),它是許多聰明、勤奮工作的人們集體工作的成果。R軟件有超過(guò)兩千多個(gè)軟件包插件。R軟件是其他所有商業(yè)統(tǒng)計(jì)軟件包的強(qiáng)勁競(jìng)爭(zhēng)對(duì)手。
但是,開(kāi)始使用R軟件可能感到無(wú)從下手。對(duì)于許多任務(wù),即便是一些基本的任務(wù),R的實(shí)現(xiàn)也不是很明顯。當(dāng)了解了R的使用方法后,簡(jiǎn)單的問(wèn)題自然能得心應(yīng)手地解決,但學(xué)習(xí)“如何”使用R的過(guò)程有時(shí)會(huì)讓人感到發(fā)狂。
本書(shū)介紹了如何使用R軟件的一些方法,其中每一個(gè)方法對(duì)應(yīng)解決某個(gè)特定的問(wèn)題。介紹這些方法的途徑是這樣的:首先給出待解決的問(wèn)題,然后給出解決方案的簡(jiǎn)單介紹,之后再給出對(duì)解決方案的討論,深入剖析解決方案,給出該方案的原理。我知道這些方法有效實(shí)用,我也知道這些方法可行,因?yàn)槲冶救艘彩褂盟鼈儭?br />
這些方法所涉及的范圍較為廣泛。首先從基本的任務(wù)開(kāi)始介紹,然后介紹數(shù)據(jù)的輸入和輸出、基礎(chǔ)統(tǒng)計(jì)、繪圖以及線(xiàn)性回歸。與R有關(guān)的工作都將或多或少地涉及本書(shū)介紹的方法。
通過(guò)本書(shū)的講解,初學(xué)者能快速地了解R并獲得提高。如果你對(duì)R軟件有一定的了解,那么本書(shū)也能幫助你鞏固已學(xué)的知識(shí),拓寬你的思維(例如,“下一次我應(yīng)該怎么使用K-S檢驗(yàn)”)。
從嚴(yán)格意義上來(lái)說(shuō),本書(shū)并不是一本關(guān)于R軟件的教程,但你將會(huì)從中學(xué)習(xí)到許多R軟件的應(yīng)用技巧。本書(shū)也不是一本關(guān)于R的參考手冊(cè),但它確實(shí)包含了許多實(shí)用的內(nèi)容。本書(shū)也不是一本R軟件的編程指南,但書(shū)中很多方法都可以應(yīng)用到R的編程腳本中。
最后,本書(shū)不是統(tǒng)計(jì)學(xué)理論的參考書(shū)。本書(shū)假設(shè)讀者對(duì)統(tǒng)計(jì)理論和方法有一定的了解,他們需要知道的是如何在R軟件中實(shí)現(xiàn)。
方法
本書(shū)介紹的大部分方法,都是由一兩個(gè)R函數(shù)命令來(lái)解決某一特定問(wèn)題。需要注意的是,書(shū)中不會(huì)對(duì)某一函數(shù)的全部功能進(jìn)行詳細(xì)解釋?zhuān)莾H僅介紹那些為了解決某個(gè)問(wèn)題所需要涉及的函數(shù)功能。R軟件中幾乎所有的函數(shù)都遠(yuǎn)遠(yuǎn)不止本書(shū)中所介紹的這些功能,其中有的函數(shù)具有更強(qiáng)大的功能。因此強(qiáng)烈建議讀者閱讀這些函數(shù)的幫助頁(yè)面,你可能會(huì)從中得到不少收獲。
每個(gè)方法都為讀者提供了解決某個(gè)問(wèn)題的一條途徑。當(dāng)然對(duì)于每個(gè)問(wèn)題有可能存在多個(gè)正確的解決方案。在這種情況下,我一般會(huì)選擇最為簡(jiǎn)單的方法介紹。對(duì)于書(shū)中給出的任何問(wèn)題,你自己或許可以找到其他一些解決方案。本書(shū)著重介紹解決問(wèn)題的方法,類(lèi)似“菜譜”書(shū),不是R軟件的大全書(shū)籍。
尤其是,R軟件有大量的可添加包,這幾千個(gè)R軟件包都可以通過(guò)網(wǎng)絡(luò)下載的方式得到。這些包中含有許多替代算法和統(tǒng)計(jì)方法。本書(shū)側(cè)重于R基礎(chǔ)發(fā)布版所帶的核心功能,因此你可以從其他的R添加包中找到相關(guān)的替代方案(參見(jiàn)方法1.11)。
對(duì)術(shù)語(yǔ)的說(shuō)明
每個(gè)方法旨在迅速地解決問(wèn)題,而非長(zhǎng)篇大論地進(jìn)行敘述。因此我可能會(huì)采用一些術(shù)語(yǔ)來(lái)簡(jiǎn)化相關(guān)內(nèi)容的解釋?zhuān)@些術(shù)語(yǔ)有時(shí)候可能不精確,但是正確的。比如對(duì)于“泛型函數(shù)”一詞。我把函數(shù)print(x)和函數(shù)plot(x)稱(chēng)為泛型函數(shù),原因是它們能適當(dāng)?shù)靥幚矶喾N輸入?yún)?shù)x。計(jì)算機(jī)學(xué)家可能會(huì)質(zhì)疑這一術(shù)語(yǔ),因?yàn)閲?yán)格地說(shuō)這些都不是簡(jiǎn)單的“函數(shù)”,它們是多態(tài)方法并且動(dòng)態(tài)調(diào)度。但是,如果我仔細(xì)地精確定義所有這樣的技術(shù)細(xì)節(jié),那么關(guān)鍵的解決方案將會(huì)埋沒(méi)于這些細(xì)枝末節(jié)的技術(shù)問(wèn)題中。所以為了便于閱讀,我就將它們稱(chēng)為函數(shù)。
另一個(gè)例子是統(tǒng)計(jì)學(xué)中假設(shè)檢驗(yàn)所用語(yǔ)義的嚴(yán)格性。若使用概率論的嚴(yán)格定義,就會(huì)使讀者難以清晰理解這些檢驗(yàn)的實(shí)際應(yīng)用,所以我以更通俗的語(yǔ)言描述各個(gè)統(tǒng)計(jì)檢驗(yàn)。更多有關(guān)假設(shè)檢驗(yàn)方法的細(xì)節(jié)請(qǐng)查看第9章的簡(jiǎn)介。
我的目標(biāo)是用通俗易懂而非嚴(yán)格的正式語(yǔ)言,讓R軟件能被更多的讀者所理解和接受。因此希望各個(gè)領(lǐng)域的專(zhuān)家對(duì)于我所給出的某些并不嚴(yán)謹(jǐn)?shù)男g(shù)語(yǔ)定義予以諒解。
軟件及平臺(tái)說(shuō)明
雖然R軟件時(shí)常進(jìn)行有計(jì)劃的版本更新,但其語(yǔ)言定義和核心實(shí)現(xiàn)是穩(wěn)定的。本書(shū)所介紹的方法將適用于基礎(chǔ)發(fā)布版的任何最新版本。
有些方法對(duì)于操作平臺(tái)有特殊的要求,我會(huì)在文中對(duì)其加以標(biāo)注,這些方法大多數(shù)是一些有關(guān)軟件本身的問(wèn)題,如程序的安裝和配置。據(jù)我所知,書(shū)中的其他所有方法都能在R的三個(gè)主要平臺(tái)中得到兼容,即Windows、OS X和Linux / UNIX。
其他資源
網(wǎng)絡(luò)
R項(xiàng)目網(wǎng)站(http://www.r-project.org)匯集了所有R軟件的相關(guān)資源。從中可以下載R程序代碼、R添加包、文檔、源代碼以及許多其他資源。
除了R項(xiàng)目網(wǎng)站以外,我建議使用一個(gè)針對(duì)R軟件的搜索引擎,比如Sasha Goodman 開(kāi)發(fā)的Rseek搜索引擎(http://rseek.org)。也可以使用谷歌這樣的通用搜索引擎,但在搜索“R”搜索詞時(shí)可能會(huì)得到許多無(wú)關(guān)的搜索結(jié)果。更多有關(guān)網(wǎng)絡(luò)搜索的細(xì)節(jié)參見(jiàn)方法1.10。
瀏覽博客也是學(xué)習(xí)R軟件和掌握相關(guān)R最新動(dòng)態(tài)的一種有效方式。網(wǎng)絡(luò)中存在許多這樣的博客,我推薦其中兩個(gè):Tal Galili的R-bloggers(http://www.r-bloggers.com/)和PlanetR的(http://planetr.stderr.org)。可以通過(guò)訂閱他們的網(wǎng)站了解許多相關(guān)網(wǎng)站上有趣且實(shí)用的文章。
R軟件參考書(shū)籍
市面上有許多學(xué)習(xí)和應(yīng)用R軟件的書(shū)籍。下面列出一些我發(fā)現(xiàn)會(huì)有幫助的R軟件教程。R項(xiàng)目網(wǎng)站收錄并編制了大量與R相關(guān)的書(shū)目(http://www.r-project.org/doc/bib/R-books.html)。我所推薦的書(shū)目有:
Network Theory Limited出版的《An Introduction to R》,作者是William Venables等。該書(shū)涵蓋了許多對(duì)初學(xué)者很有幫助的知識(shí)。可以通過(guò)CRAN網(wǎng)站免費(fèi)下載該書(shū)的PDF版本(http://cran.r-project.org/doc/manuals/R-intro.pdf),或者推薦購(gòu)買(mǎi)紙質(zhì)書(shū)籍,此書(shū)所獲利潤(rùn)將捐贈(zèng)給R項(xiàng)目。
O扲eilly公司出版的《R in a Nutshell》(http://oreilly.com/catalog/978059680717),該書(shū)的作者是Joseph Adler,此書(shū)可以隨時(shí)作為你R軟件的使用參考,并且它比本書(shū)涵蓋了更多的內(nèi)容。
任何應(yīng)用R繪制正式圖形的工作都可以參考《R Graphics》一書(shū),該書(shū)的作者為Paul Murrel(Chapman & Hall/CRC)。根據(jù)應(yīng)用的R圖形包的不同,也可以參考《Lattice:Multivaritate Data Visualiation with R》,作者為Deepayan Sarkar,由Springer出版社出版;《ggplot2: Elegant Graphics for Data Analysis》,作者為Hadley Wickham,由Springer公司出版。
《Modern Appied Statistic With S(4th ed.)》, 作者為William Venables等,由Springer公司出版。該書(shū)采用S軟件來(lái)說(shuō)明一些高級(jí)的統(tǒng)計(jì)技術(shù)。該書(shū)所涉及的函數(shù)和數(shù)據(jù)可通過(guò)下載R軟件標(biāo)準(zhǔn)發(fā)布版MASS獲得。
市面上定期會(huì)有關(guān)于R編程的新書(shū)出版,但我并不提倡不加區(qū)分地選擇。關(guān)于R軟件編程,我推薦《R in a Nutshell》和William Venables與Brian Ripley等的《S Programming》(Springer)。我還推薦下載《R Language Definition》一書(shū)(http://cran.r-project.org/doc/manuals/R-lang.pdf),通過(guò)它可以解決許多R軟件編程中遇到的細(xì)節(jié)問(wèn)題。
統(tǒng)計(jì)學(xué)書(shū)籍
在你學(xué)習(xí)的過(guò)程中需要一本好的統(tǒng)計(jì)學(xué)參考書(shū)作為指導(dǎo),它可以幫助你準(zhǔn)確地理解在R中進(jìn)行的統(tǒng)計(jì)檢驗(yàn)。目前市面上有許多優(yōu)秀的統(tǒng)計(jì)學(xué)參考書(shū),因此我所推薦的書(shū)很難說(shuō)這本比那本更優(yōu)秀。
由John Verzani編寫(xiě)的《Using R for Introductory Statistic》(Chapman & Hall/CRC),是一本優(yōu)秀的統(tǒng)計(jì)學(xué)教材。它結(jié)合統(tǒng)計(jì)學(xué)與R軟件,講述應(yīng)用統(tǒng)計(jì)方法的一些必要的計(jì)算機(jī)技巧(http://www.r-project.org/doc/bib/R-books.html)。
越來(lái)越多的統(tǒng)計(jì)學(xué)作者選擇R軟件來(lái)講述相應(yīng)的統(tǒng)計(jì)方法。某一特定專(zhuān)業(yè)領(lǐng)域的工作者可以在R項(xiàng)目網(wǎng)站收錄的書(shū)目中尋找所需要的書(shū)籍。
致謝
我要對(duì)整個(gè)R社區(qū),尤其是R軟件的核心開(kāi)發(fā)團(tuán)隊(duì)表示衷心感謝。他們的無(wú)私付出對(duì)世界統(tǒng)計(jì)學(xué)的貢獻(xiàn)巨大。
我要感謝本書(shū)的技術(shù)審校者:James D. Long、Timothy McMurry、David Reiner、Jeffery Ryan和John Verzani。同時(shí)感謝Joe Adler給予本書(shū)的意見(jiàn)。他們做出的反饋對(duì)于本書(shū)得以有高質(zhì)量、嚴(yán)謹(jǐn)并且實(shí)用的內(nèi)容至關(guān)重要。他們的意見(jiàn)也幫助我節(jié)省了許多時(shí)間,避免了我傳播錯(cuò)誤的內(nèi)容。
Mike Loukides是一位出色的編輯,我在此深深感謝他的智慧和指導(dǎo)。開(kāi)始本書(shū)的項(xiàng)目時(shí)有人宣稱(chēng)Mike是出版行業(yè)里最棒的編輯,現(xiàn)在我完全相信這一事實(shí)。
我要對(duì)我的妻子Anna表達(dá)最大的謝意。她的支持使本書(shū)出版成為可能。她的參與使得編寫(xiě)本書(shū)的過(guò)程充滿(mǎn)快樂(lè)。
收起全部↑
Paul Teetor是一位定量分析專(zhuān)家,他曾獲統(tǒng)計(jì)學(xué)碩士和計(jì)算機(jī)科學(xué)碩士。他從事投資管理、風(fēng)險(xiǎn)交易和風(fēng)險(xiǎn)管理等領(lǐng)域的分析與軟件工程。