内容简介:
【编辑推荐】
资深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语言已成为数据分 析的利器,是挖掘数据价值必不可少的工具,截止到2014年5月,R语言的软件包有5500多个。如何使用这众多的软件包,是R语言学习者和使用者遇到的最大问题。本书将告诉读者R语言在真实环境下到底能够做什么,并且详细地告诉你怎样一步一步地实施。书中结合作者的使用心得及案例分析,介绍了30多个R语言包,一定会解决R语言使用者的诸多困扰。
本书是R语言入门后的进阶读物,为用户灵活使用R语言提供思路上的扩展,给出进阶的学习路线。书中内容来自作者在R语言的实际使用过程中的经验总结,其中涉及计算机、互联网、数据库、大数据、统计、金融等领域,详细总结了R语言在实际使用时与Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、HBase等技术的综合运用的解决方案,具有实战性、可操作性。从本书中,读者既可以看到R语言在各行业、各领域所散发的魅力,也能看到R语言在与其他计算机语言结合后所迸发的强大活力,解决在使用R语言过程中遇到的瓶颈;书中具有全局观的案例实施,也会给读者带来新的启发。
本书姊妹篇《R的极客理想——高级开发篇》将深入介绍R语言底层原理,并使用R语言开发出企业级的应用。
作者简介:
张丹 R语言资深用户,系统架构师,精通Java、JavaScript、Node.js等多种工具,曾开发多种不同类型的系统及应用,目前在量化投资领域创业中。张丹在其个人博客原创了大量关于R语言和Hadoop大数据技术的文章,2013年,他的RHadoop系列文章在统计之都发表。他还是Dataguru的培训讲师,教授课程《Hadoop应用开发实战案例》、《Mahout机器学习平台》。
博客:http://blog.fens.me
微博:http://weibo.com/dotabook,@Conan_Z
目录:
序一
序二
前言
第一部分 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