首页>参考读物>计算机科学与技术>专用软件

R的极客理想——工具篇
作者 : 张丹 著
出版日期 : 2014-08-15
ISBN : 978-7-111-47507-1
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 312
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书首先介绍了R的工具包、时间序列包和性能监控包,然后阐述R语言与其他编程语言的通信以及R语言作为服务器的应用,最后阐释R语言与各种数据库的通信以及R语言与Hadoop集成。书后还有附录,介绍了Java安装、各种数据库安装以及Hadoop安装。书中内容涉及计算机、互联网、数据库、大数据、统计、金融等领域,详细总结了R语言在实际使用时与Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、Hbase等技术的综合运用的解决方案,具有实战性,可操作性强。
本书适合所有R语言工作者,包括软件工程师、DBA、数据科学家、科研工作者以及相关专业的学生。作为工具书,读者可以选择任何感兴趣的章节进行阅读,每节之间没有特别的顺序要求。

第三部分:R数据库,主要介绍R语言访问常用开源的数据库和NoSQL数据库,RHadoop实践等内容。

第四部分:开发自己的R包,主要介绍如何开发自己的R包,并以一个在线的实例展示R+PHP结合的应用。

图书特色

资深R语言用户多年实战经验的结晶,介绍了各种性能奇特的R语言包,提升R语言性能的方法,以及R语言在实际使用时与Java、MySQL、MongoDB、Hive、HBase、Hadoop等技术的综合运用的解决方案。

刘思喆
京东推荐算法经理
近几年出版的关于R语言的书籍主要从统计学知识或编程语法等角度来写,张丹的《R的极客理想》以作者多年开发经验为素材,从工程角度描述了R语言的诸多让人兴奋的特性,以及R语言同其他主流开发环境的协同。我相信《R的极客理想》可以让数据库开发者少走弯路,同时也是对统计工作者视界的有益的补充!

陈堰平 SupStat创始人
学习R语言,不仅是学一门编程语言,同时你也在学习一门新的学科——数据科学。不管你是程序员还是数据分析师,张丹的这本书都会是带你走进数据科学后花园的藏宝图,它会告诉你如何将R语言直接应用在企业环境中,也会告诉你如何将大数据技术与R语言结合,更快更轻巧地创造价值。

黄志洪
ITPUB和炼数成金创始人
这是我看过的R语言书籍中最别树一帜的。关于R基础编程和数据分析的书已经有很多,而张丹独辟蹊径,从一些较专业的扩展包入手,介绍了作为服务器的R,以及R语言和大数据技术的融合,非常符合当前发展潮流及本书标题所揭示的内容。

谢益辉
RStudio程序员
极客不是一种身份,而是一种态度。在我眼里,这个词是中性的,极客不代表一个人有多牛,而是他的钻研态度、好奇心以及对新技术的识别和接受能力。张丹这本书给大家提供了一条通向R极客之路,但这绝对不是终点。希望读者通过这本书能感受到作者探索的乐趣,保持开放心态,积极学习,然后找到适合自己的极客理想。
作者简介






R语言资深用户,系统架构师,精通Java、JavaScript、Node.js等多种工具,曾开发多种不同类型的系统及应用,目前在量化投资领域创业中。张丹在其个人博客原创了大量关于R语言和Hadoop大数据技术的文章,2013年,他的RHadoop系列文章在统计之都发表。他还是Dataguru的培训讲师,教授课程《Hadoop应用开发实战案例》、《Mahout机器学习平台》。

博客:http://blog.fens.me
微博:http://weibo.com/dotabook,@Conan_Z

大数据时代,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语言开发出企业级的应用。

图书前言

为什么要写这本书
我是一名程序员,前后做了10年的程序开发工作。在这10年间,我从程序员一路做到架构师,经历了太多的系统和应用。我做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后开始用PHP……如同其他程序员一样,我一度陶醉于追求各种技术的创新,但始终有一个问题困扰着我,那就是如何才能够将我所掌握的技术转变成价值?这就好比我面对着一座金山,我拥有先进的技术,可以制作各种性能稳定、功能卓越的挖掘机器,但我不懂如何将矿石提纯,变成金子!每每看到别人利用我的技术挖掘出金子时,我只能满脸的羡慕,心中无限的不甘。
直到遇见R语言,我豁然开朗。R语言为我从另外一个角度开启了宝藏的大门,也让我对自己的职业重新思考、规划,最后坚定了我向统计、金融行业的转型。如果你也存在以上的问题,不如随着本书一起进入R语言的世界,领略R语言特有的魅力,通过对R语言的学习,重新认识大数据的价值,更深一步地提升个人价值。
随着我与统计、金融领域的朋友交流地逐步深入,我深刻地体会到,他们对R语言的实际使用也存在着很大的问题和困惑。比如,他们在某些实验室环境下,使用R语言可以很轻松、很顺利地实现预期效果,但是移植到真实环境下,面对浩瀚繁复的大数据,在使用R语言的过程中出现了很多问题。这就好比面对一座金山,他们掌握着先进的提纯技术,但他们所使用的挖掘、采集工具却还停留在石器时代!使用工具的落后,使他们要面对大量R语言之外的问题,这让他们应接不暇,甚至崩溃!有的人甚至因此认为,R语言只是一种实验室语言,至少以现在的技术水平无法将它运用到现实生活中,R语言在现实生活中广泛应用,简直是天方夜谭!
是的,如果你是一名没有计算机背景的R语言使用者,你在实际使用中也同样会遇到许多这样或那样的问题,面对这些棘手的问题寝食难安,尝试着通过各种方式寻求解决方案。其实,在计算机领域,这些问题已经早就有了成熟、有效的解决方案。
本书的内容来自我在R语言实际使用过程中的经验总结,基本都是我在工作中使用R语言的真实记录,其中涉及计算机、互联网、数据库、大数据、统计、金融等领域,详细总结了R语言在实际使用时与Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、HBase等技术综合运用的解决方案,具有实战性,可操作性强。如果你与R语言接触时间不长,本书可以让你看到R语言在各行业、各领域所散发的魅力;如果你在某行业使用R语言已经有一段时间了,可能在使用R语言的过程中遇到了瓶颈,本书将让你看到R语言在与其他计算机语言结合后所迸发的强大活力;如果你是技术人员,本书中有全局观的案例实施,也许会给你带来新的启发,甚至跟我一样,重新规划自己的职业生涯,找到学习、奋斗的新方向;如果你是企业的中高层管理者,在本书中可以看到我们已经实现的技术成果,如果需要,你甚至可以按照书中记录的详细操作步骤,直接在企业环境中实施,直接获利!
在此,我不得不强调,本书不是入门书,不讲R的语法,如果你想学习R语言的基础语言入门知识,那么,你来错地方了。但是,如果你已经具备了一定的R语言基础,但不一定具有计算机语言背景,我将告诉你R语言在真实环境下到底都能够做什么,并且详细地告诉你怎样一步一步地实施。
在与各界R语言初学者的交流中,我发现,入门后,学习R语言最大的问题,在于如何使用R语言的众多软件包,而介绍这方面的图书很难找到,只有一些网上流传的小册子。本书涉及了30个R语言包,并结合我的使用心得及案例分析,相信会解决大家R语言入门后的困扰。
本书是“R的极客理想”系列图书的第一本,姊妹篇《R的极客理想—高级开发篇》将深入介绍R语言底层原理,并使用R语言开发出企业级的应用。
本书的使用环境涉及Linux Ubuntu和Windows 7两种操作系统,R语言包的2.15.3和3.0.1两个版本,在每一节中都有明确的标识。
R语言还在不断地进步和更新,它将引导一场数据的革命,跨学科的结合是时代趋势,也是我们的机遇!
读者对象
本书适合以下R语言工作者:
计算机背景的软件工程师;
数据库背景的DBA;
数据分析背景的数据科学家;
统计背景的科研工作者;
大专院校相关专业的学生。
如何阅读本书
本书的内容分为四个部分。
第一部分是R基础(第1~3章),介绍了为什么要学习R语言,R语言不同版本的安装,以及R语言中常用的12个软件包。帮助读者快速了解R语言的工具包、时间序列包和性能监控包。
第二部分是R服务器(第4~5章) ,介绍了R语言与其他编程语言的通信,以及R语言作为服务器的应用。帮助读者打通R语言与其他编程语言的通道,并实现R语言的服务器应用。
第三部分是数据库和大数据(第6~7章),介绍了R语言与各种数据库的通信,以及R语言与Hadoop集成。帮助读者打通R语言与各种数据库层的通道,并实现R语言对基于Hadoop大数据的处理。
第四部分是附录,介绍了Java、各种数据库以及Hadoop的安装方式。笔者希望读者可以在不借助其他参考书的情况下,完成书中所有实例。
本书为工具书,每节之间没有特别的顺序要求,你可以选择任何你感兴趣的章节进行阅读。如果你是一名初学者,想全面掌握R语言,请按顺序阅读全部的章节。
勘误和支持
由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者创建一个在线的图书交流网站( https://onbook.me ),方便与读者进行沟通。如果读者在阅读过程中遇到问题,也可以在网站中留言,我将尽量在线上为你提供最满意的解答。书中的全部源代码都可以从机工新阅读网站(www.cmpreading.com)或本书交流网站下载,我也会及时更新代码。本书为黑白印刷,关于更绚丽的彩色图片,读者运行源代码即可看到。如果你有什么宝贵意见,欢迎发送邮件至bsspirit@gmail.com,期待能够得到你真挚的反馈。
致谢
感谢我的团队,林伟林、林伟平、邓一硕,让我们因R语言走到一起。感谢机械工业出版社华章分社的编辑明永玲,帮助我审阅全部章节,引导我顺利完成书稿。感谢我的爸爸、妈妈和爱人,感谢你们对我工作上的支持和生活上的照顾!
谨以此书献给我最亲爱的家人以及众多R语言爱好者们!
张丹
2014年5月于中国北京

上架指导

计算机\程序设计

封底文字

“近几年出版的关于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

教学资源推荐
作者: Helmut Kopka, Patrick W.Daly
作者: 何宁 吴黎兵 滕冲
作者: 崔冬 黄骁
作者: 晓雨工作室
参考读物推荐
作者: “快速动画普及丛书”编写委员会 策划 张立新 编著
作者: Dawna Travis Dewire
作者: 华为企业架构与变革管理部 著
作者: 罗刚 张子宪 编著