TOP
紅利積點抵現金,消費購書更貼心
R的極客理想:工具篇(簡體書)
滿額折

R的極客理想:工具篇(簡體書)

商品資訊

人民幣定價:59.00 元
定價
:NT$ 354 元
優惠價
87308
絕版無法訂購
商品簡介
作者簡介
名人/編輯推薦
目次
書摘/試閱

商品簡介

本書首先介紹了R的工具包、時間序列包和性能監控包;然後闡述R語言與其他程式設計語言的通信,以及R語言作為伺服器的應用;最後闡釋R語言與各種資料庫的通信以及R語言如何與Hadoop集成。附錄介紹了Java、各種資料庫以及Hadoop的安裝方式。書中內容涉及電腦、互聯網、資料庫、大資料、統計、金融等領域,詳細總結了R語言在實際使用時與Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、HBase等技術綜合運用的解決方案,具有實戰性及可操作性強等特點。
本書適合所有R語言工作者,包括軟體工程師、DBA、資料科學家、科研工作者以及相關專業的學生。讀者可以選擇任何感興趣的章節進行閱讀,每節之間沒有特別的順序要求。

作者簡介

張丹 R語言資深使用者,系統架構師,精通Java、JavaScript、Node.js等多種工具,曾開發多種不同類型的系統及應用,目前在量化投資領域創業中。張丹在其個人博客原創了大量關於R語言和Hadoop大資料技術的文章,2013年,他的RHadoop系列文章在統計之都發表。他還是Dataguru的培訓講師,教授課程《Hadoop應用開發實戰案例》、《Mahout機器學習平臺》。
博客:http://blog.fens.me
微博:http://weibo.com/dotabook,@Conan_Z

名人/編輯推薦

編輯推薦
資深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
1.1 R是最值得學習的程式設計語言 2
1.1.1 我的程式設計背景 3
1.1.2 為什麼我會選擇R 3
1.1.3 R的應用前景 7
1.1.4 時代賦予R的任務 8
1.2 R的歷史版本安裝 8
1.2.1 R在Windows中安裝 9
1.2.2 R在Linux Ubuntu中安裝 10
1.2.3 R的最新版本安裝 10
1.2.4 R的指定版本安裝 10
1.3 fortunes 記錄R語言的大智慧 11
1.3.1 fortunes介紹 12
1.3.2 fortunes安裝 12
1.3.3 fortunes包的使用 12
1.4 formatR 代碼自動化排版 13
1.4.1 formatR介紹 13
1.4.2 formatR安裝 14
1.4.3 formatR的使用 14
1.4.4 formatR的原始程式碼解析 20
1.4.5 原始程式碼中的Bug 21
1.5 多人線上協作R開發RStudio Server 22
1.5.1 RStudio和RStudio Server 22
1.5.2 RStudio Server安裝 22
1.5.3 RStudio Server使用 23
1.5.4 RStudio Server多人協作 26
1.6 R和JSON的傻瓜式程式設計 29
1.6.1 rjson包介紹 29
1.6.2 RJSONIO包介紹 33
1.6.3 自訂JSON的實現 36
1.6.4 JSON性能比較 38
1.7 R語言的高品質圖形渲染庫Cairo 40
1.7.1 Cairo介紹 40
1.7.2 Cairo包安裝 40
1.7.3 Cairo使用 41
1.8 caTools:一個奇特的工具集 46
1.8.1 caTools介紹 47
1.8.2 caTools安裝 48
1.8.3 caTools使用 48
第2章 時間序列基礎包 58
2.1 R語言時間序列基礎庫zoo 58
2.1.1 zoo包介紹 59
2.1.2 zoo安裝 60
2.1.3 zoo包的使用 60
2.2 可擴展的時間序列xts 75
2.2.1 xts介紹 75
2.2.2 xts包的安裝 78
2.2.3 xts包的使用 78
2.3 時間序列視覺化plot.xts 93
2.3.1 xtsExtra介紹 93
2.3.2 xtsExtra安裝 93
2.3.3 xtsExtra包的使用 94
第3章 R性能監控包 104
3.1 R語言本地緩存工具memoise 104
3.1.1 memoise介紹 105
3.1.2 memoise安裝 105
3.1.3 memoise使用 105
3.1.4 memoise()函數原始程式碼分析 106
3.2 R語言性能監控工具Rprof 108
3.2.1 Rprof()函數介紹 109
3.2.2 Rprof()函數的定義 109
3.2.3 Rprof()函數使用: 股票資料分析案例 109
3.2.4 Rprof()函數使用: 數據下載案例 112
3.2.5 用profr包視覺化性能指標 113
3.2.6 Rprof的命令行使用 115
3.3 R語言性能視覺化工具lineprof 116
3.3.1 lineprof介紹 117
3.3.2 lineprof安裝 117
3.3.3 lineprof使用 118
第二部分 R伺服器
第4章 R語言的跨平臺通信 122
4.1 Rserve與Java的跨平臺通信 122
4.1.1 Rserve安裝 123
4.1.2 用Java遠端連接Rserve 124
4.2 Rsession讓Java調用R更簡單 126
4.2.1 Rsession下載 126
4.2.2 用Eclipse構建Rsession項目 127
4.2.3 Rsession的API介紹 128
4.2.4 Rsession使用 129
4.3 解惑rJava R與Java的高速通道 132
4.3.1 rJava介紹 133
4.3.2 rJava安裝 133
4.3.3 rJava實現R調用Java 134
4.3.4 rJava(JRI)實現Java調用R (Windows 7) 135
4.3.5 rJava(JRI)實現Java調用R (Ubuntu) 137
4.4 Node.js與R跨平臺通信 137
4.4.1 Node.js簡單介紹 138
4.4.2 R語言配置環境 138
4.4.3 Node.js配置環境 139
4.4.4 Node.js與R跨平臺通信 139
第5章 R的伺服器實現 143
5.1 R語言伺服器程式 Rserve詳解 143
5.1.1 Rserve的啟動 144
5.1.2 Rserve高級使用:Rserve配置管理 146
5.1.3 Rserve高級使用:用戶登錄認證 148
5.2 Rserve的R語言用戶端RSclient 149
5.2.1 配置Rserve伺服器 150
5.2.2 RSclient安裝 150
5.2.3 RSclient的API 151
5.2.4 RSclient的使用 152
5.2.5 兩個用戶端同時訪問 152
5.3 FastRWeb:跑在Web上的R程式 153
5.3.1 FastRWeb介紹 154
5.3.2 FastRWeb安裝 155
5.3.3 FastRWeb使用 156
5.4 R語言構建Websocket伺服器 159
5.4.1 websockets介紹 159
5.4.2 websockets安裝 160
5.4.3 快速啟動websockets伺服器demo 162
5.4.4 R語言創建Websocket伺服器實例 163
5.4.5 R語言創建Websocket用戶端連接 163
5.4.6 用流覽器HTML5原生API用戶端連接 164
第三部分 資料庫和大資料
第6章 資料庫和NoSQL 168
6.1 RMySQL資料庫程式設計指南 168
6.1.1 RMySQL在Linux下安裝 169
6.1.2 RMySQL在Windows 7下安裝 173
6.1.3 RMySQL函數使用 176
6.1.4 RMySQL案例實踐 181
6.2 R利劍NoSQL 之 MongoDB 183
6.2.1 MongoDB環境準備 183
6.2.2 rmongodb函式程式庫 185
6.2.3 rmongodb基本使用操作 187
6.2.4 rmongodb性能測試的案例 189
6.3 R利劍NoSQL 之 Redis 192
6.3.1 Redis環境準備 192
6.3.2 rredis函式程式庫 193
6.3.3 rredis基本使用操作 194
6.3.4 rredis測試案例 198
6.4 R利劍NoSQL之Cassandra 200
6.4.1 Cassandra環境準備 200
6.4.2 RCassandra函式程式庫 201
6.4.3 RCassandra基本使用操作 202
6.4.4 RCassandra使用案例 204
6.4.5 Cassandra的沒落 205
6.5 R利劍NoSQL 之 Hive 206
6.5.1 Hive環境準備 207
6.5.2 RHive安裝 208
6.5.3 RHive函式程式庫 209
6.5.4 RHive基本使用操作 209
6.6 用RHive從歷史資料中提取逆回購資訊 212
6.6.1 逆回購簡介 212
6.6.2 歷史資料存儲結構 213
6.6.3 通過用RHive提取資料 213
6.6.4 策略模型及實現 216
第7章 RHadoop 222
7.1 R語言為Hadoop注入統計血脈 222
7.1.1 Hadoop介紹 223
7.1.2 為什麼要讓Hadoop結合R語言 224
7.1.3 如何讓Hadoop結合R語言 225
7.1.4 展望未來 226
7.2 RHadoop安裝與使用 226
7.2.1 環境準備 227
7.2.2 RHadoop安裝 227
7.2.3 RHadoop程式開發 229
7.3 RHadoop實驗:統計郵箱出現次數 233
7.3.1 需求描述 233
7.3.2 演算法實現 234
7.4 RHadoop實現基於MapReduce的協同過濾演算法 236
7.4.1 基於物品推薦的協同過濾演算法介紹 236
7.4.2 R語言本地程式實現 237
7.4.3 R基於Hadoop分步式程式實現 242
7.5 rhbase安裝與使用 249
7.5.1 HBase環境準備 250
7.5.2 rhbase安裝 250
7.5.3 rhbase函式程式庫 251
7.6 解決RHadoop安裝錯誤:PipeMapRed.waitOutputThreads() 253
7.6.1 rmr2運行錯誤日誌 254
7.6.2 定位錯誤到Hadoop日誌 255
7.6.3 從Hadoop入手找解決辦法 — 失敗 256
7.6.4 從RHadoop入手找解決辦法 — 成功 257
第四部分 附 錄
附錄A Java環境安裝 262
附錄B MySQL資料庫安裝 266
附錄C Redis資料庫安裝 270
附錄D MongoDB資料庫安裝 273
附錄E Cassandra資料庫安裝 277
附錄F Hadoop安裝 280
附錄G Hive環境安裝 287
附錄H HBase安裝 290

書摘/試閱

第一部分
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個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 308
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區