編輯推薦
資深R語言使用者多年實戰經驗的結晶,總結了各種性能奇特的R語言包,提升R語言性能的方法,以及R語言在實際使用時與Java、MySQL、MongoDB、Hive、HBase、Hadoop等技術的綜合運用的解決方案。
媒體評論
“近幾年出版的關於R語言的書籍主要從統計學知識或程式設計語法等角度來寫,張丹的《R的極客理想》以作者多年開發經驗為素材,從工程角度描述了R語言的諸多讓人興奮的特性,以及R語言同其他主流開發環境的協同。我相信《R的極客理想》可以讓資料開發者少走彎路,同時也是對統計工作者視界的有益的補充!”
——劉思喆 **推薦演算法經理
“學習R語言,不僅是學一門程式設計語言,同時你也在學習一門新的學科——資料科學。不管你是程式師還是資料分析師,張丹的這本書都會是帶你走進資料科學後花園的藏寶圖,它會告訴你如何將R語言直接應用在企業環境中,也會告訴你如何將大資料技術與R語言結合,更快更輕巧地創造價值。”
——陳堰平 SupStat創始人
“這是我看過的R語言書籍中最別樹一幟的。關於R基礎程式設計和資料分析的書已經有很多,而張丹獨闢蹊徑,從一些較專業的擴展包入手,介紹了作為伺服器的R,以及R語言和大資料技術的融合,非常符合當前發展潮流及本書標題所揭示的內容。”
——黃志洪 ITPUB和煉數成金創始人
“極客不是一種身份,而是一種態度。在我眼裡,這個詞是中性的,極客不代表一個人有多牛,而是他的鑽研態度、好奇心以及對新技術的識別和接受能力。張丹這本書給大家提供了一條通向R極客之路,但這絕對不是終點。希望讀者通過這本書能感受到作者探索的樂趣,保持開放心態,積極學習,然後找到適合自己的極客理想。”
——謝益輝 RStudio程式師
第一部分
R基礎
■第1章 R語言基礎包
■第2章 時間序列基礎包
■第3章 R性能監控包
第1章
R語言基礎包
本章主要介紹了為什麼要學習R語言,R語言軟體的安裝,R語言的開發工具,以及R語言中常用的幾個套裝軟體,以説明讀者快速瞭解R語言的工具包,激發讀者對R語言的學習興趣。
1.1 R是最值得學習的程式設計語言
問題
為什麼要學R語言?
引言
如果要問在Node、Lua、Python、Ruby和R這5種語言中,哪個語言在2014年的應用前景會更好,我會毫不猶豫地選擇R,而且我認為R語言不僅是2014年,也是以後更長一段時間內的明星。在本書開篇,我們就談談為什麼R語言是最值得學習的程式設計語言。
1.1.1 我的程式設計背景
本人是程式師、架構師,從程式設計入門到今天,一直深信著Java是改變世界的語言,Java已經做到了,而且一直很輝煌。但當Java越來越強大,覆蓋領域越來越多,變得無所不能的時候,它反而不夠專業,這就給了其他語言發展的機會。
我已使用Java語言11年,R語言3年,Node 1年,對於這個問題 “哪個語言在2014年的應用前景會更好”,我選擇R語言。
1.1.2 為什麼我會選擇R
從下面的9個方面來說明我選擇R的原因。
R的基因
R的發展
R的社區和資源
R的哲學
R的使用者
R的語法
R的思維模式
R解決的問題
R的不足
1. R的基因
1992年,新西蘭奧克蘭大學的Ross Ihaka和Robert Gentleman 兩位統計學家,為了方便教授初等統計課程,發明了一種程式設計語言,因為他們名字的首字母都是R,於是R便成為這門語言的名稱。
從開始學習R語言,我就開始了知識的跨界思考。統計學基於概率論,概率論又基於數學,用電腦的方式程式設計,同時解決某個領域的實際問題。多種學科知識的交集,決定著我們解決問題的能力。統計的基因,讓R語言與眾不同!
2. R的發展
R一直在小眾領域成長著,最早也只有統計學家在用,主要用來代替SAS做統計計算。然而時代在進步,隨著大資料的爆發,R終於在這一波浪潮中被工業界所發現。然後,越來越多有工程背景的人加入到這個圈子,對R的計算引擎、性能以及各種套裝程式進行改進和升級,讓R獲得了新生。
我們現在用到的R語言軟體,已經越來越接近工業軟體的標準了。由工程師推動的R的發展,其速度遠遠地超過了由統計學家推動的發展。隨著人們對資料分析需求的進一步增加,R會以更快的速度繼續發展,將成為免費的、開源的資料分析軟體的代名詞。
3. R的社區和資源
R的發展離不開R的各種社區支持,尤其是R的官方社區支持。在R的官方網站中,我們可以下載到R語言軟體、R的協力廠商套裝軟體和R的其他支援軟體。當然,我不得不承認R的官方網站( http://www.r-project.org/ )從Web頁上看起來太簡陋了,稍微調整一下CSS樣式表,都會比現在好看很多。也許這種簡單、無修飾也是統計學家的基因吧。R語言的社區資源同其他語言一樣豐富,除了官方社區,還有開發者論壇( http://r.789695.n4.nabble.com/ )、R-Journal列表( http://journal.r-project.org/ )、套裝軟體清單、R語言圖書清單以及R使用者組等。
R是自由軟體,因此開發者可以開發自己的套裝軟體,封裝自己的功能,然後在CRAN (http://cran.rstudio.com/)上面發佈。截止到2014年2月,共有5236個R包在CRAN上面發佈。可能很多人會說只有5236個包,數量太少了。這是因為CRAN是需要提交申請的,每個包都必須經過R語言小組審核、檢查後才會發佈出來,而且審核非常嚴格。高品質是發佈一個新的R包的基本要求。由於CRAN過於嚴格的審查,讓很多開發者選擇在RForge( https://r-forge.r-project.org/ )上發佈R包,還有些R包是基於Github發佈的,我也在Github上面發佈了自己的R包:https://github.com/bsspirit/chinaWeather 。
下面列出與R語言相關的主要社區和資源。
R官方網站:http://www.r-project.org/
R開發者論壇:http://r.789695.n4.nabble.com/
CRAN:http://cran.rstudio.com/
RForge:https://r-forge.r-project.org/
R新聞和博客:http://www.r-bloggers.com/
統計之都:http://cos.name/
4. R的哲學
每種語言都有自己的設計理念和哲學,而我體會的R的哲學就是“靜下心做事情”。R不需要很長的代碼,也不需要設計模式。一個函式呼叫,傳幾個參數,就能實現一個複雜的統計模型。我們需要思考的是用什麼模型、傳什麼參數,而不是怎麼進行程式設計。我們可能會用R實現“從一個數學公式,變成一個統計模型”的過程,我們也可能會考慮“如何讓一個分類器結果更準確”,但我們不必思考一個演算法的“時間複雜度是多少,空間複雜度是多少”。
R的哲學,可以讓你把數學和統計學的知識,變成計算模型,這也是R的基因所決定的。
5. R的使用者
R語言早期主要是學術界統計學家在用,後來逐漸被其他很多領域的學者所用。R語言有各種不同的應用領域,包括統計分析、應用數學、計量經濟、金融分析、財經分析、人文科學、資料採擷、人工智慧、生物資訊學、生物製藥、全球地理科學、資料視覺化等。
近幾年,由互聯網引發的大資料革命讓工業界的人開始認識R,加入R。當越來越多的有工程背景的人加入到R語言使用者的隊伍後,R才開始向著全領域發展,逐步實現工業化的要求。現在,R已不僅僅是學術界的語言,它還是工業界必備的語言。
下面列出一些推動R語言在工業界發展的R包。
RevolutionAnalytics公司的RHadoop產品,讓R可以直接調用Hadoop集群資源。
RStudio公司的RStudio產品,給了我們對編輯軟體新的認識。
RMySQL、ROracle、RJDBC打通了R和資料庫之間的訪問通道。
rmongodb、rredis、RHive、rHBase、RCassandra打通了R和NoSQL資料庫之間的訪問通道。
Rmpi、snow打通了單機多核平行計算的通道。
Rserve、rwebsocket 打通了R語言的跨平臺通信的通道。
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。