编辑推荐
, ], Y$ S* P+ W0 m% E2 B: g 资深R语言用户多年实战经验的结晶,总结了各种性能奇特的R语言包,提升R语言性能的方法,以及R语言在实际使用时与Java、MySQL、MongoDB、Hive、HBase、Hadoop等技术的综合运用的解决方案。# @ |* @9 Q" n- }
内容简介
" y. U0 Z; H, p, S1 v" X/ V 《数据分析技术丛书:R的极客理想·工具篇》首先介绍了R的工具包、时间序列包和性能监控包,然后阐述R语言与其他编程语言的通信以及R语言作为服务器的应用,最后阐释R语言与各种数据库的通信以及R语言与Hadoop集成。附录介绍了Java、Hadoop以及各种数据库对安装方式。书中内容涉及计算机、互联网、数据库、大数据、统计、金融等领域,详细总结了R语言与Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、Hbase等技术的综合运用的解决方案,具有实战性,可操作性强。本书适合所有R语言工作者,包括软件工程师、DBA、数据科学家、科研工作者以及大中专院校相关专业的学生。/ a* V/ L7 i. n' g0 h; y) y6 E+ w$ q
作者简介
& L% s1 P% \% y7 z 张丹,R语言资深用户,系统架构师,精通Java、JavaScript、Node。js等多种工具,曾开发多种不同类型的系统及应用,目前在量化投资领域创业中。张丹在其个人博客原创了大量关于R语言和Hadoop大数据技术的文章,2013年,他的RHadoop系列文章在统计之都发表。他还是Dataguru的培训讲师,教授课程《Hadoop应用开发实战案例》、《Mahout机器学习平台》。
, K2 L& H w. r' Z5 D/ b 目录
! V4 j) i' R3 V R的极客理想——工具篇
* W2 r3 r! ], C" y2 C& j2 j 序一2 {+ q. ? T4 r, ]6 s3 \8 S& ?
序二
, r- N3 ]$ G8 g4 ?+ L. M 前言% \" q# C1 _1 x3 Q- A
第一部分 R基础
0 H/ ?8 F! w. }' k 第1章 R语言基础包
, W- Z8 h: Q6 e; v$ o 1.1 R是最值得学习的编程语言2 H; g3 V, W& I* A9 x. x
1.2 R的历史版本安装4 o6 X2 C! p7 n/ D& d9 U* a
1.3 fortunes记录R语言的大智慧
! [: V* |# c8 b( J 1.4 formatR代码自动化排版. B0 B5 v3 _' v
1.5 多人在线协作R开发RStudio Server
1 j ]1 F0 g, a2 n* P7 ?7 A5 z 1.6 R和JSON的傻瓜式编程
! N* U, P" e3 L 1.7 R语言的高质量图形渲染库Cairo& \! Z, ]% o& m/ R
1.8 caTools:一个奇特的工具集
, ^/ U% b: X! ~# U2 c 第2章 时间序列基础包
$ }) ]) E: j; Q 2.1 R语言时间序列基础库zoo+ v" `* h; l% E8 |) g
2.2 可扩展的时间序列xts0 O( j( x! {7 ~' x8 T7 D
2.3 时间序列可视化plot.xts
6 i& v5 c1 S) z2 Y: p4 M 第3章 R性能监控包
8 ^$ ^" T, d0 J6 f7 i6 H( L1 G 3.1 R语言本地缓存工具memoise6 _2 Y+ {5 \' ~( [ X9 _: E
3.2 R语言性能监控工具Rprof4 e5 \) y' u" i$ ~0 }
3.3 R语言性能可视化工具lineprof
7 r9 q9 w S# S1 H2 M- @ 第二部分 R服务器
$ [. M- k" L+ J3 n" O- o. W+ H0 D 第4章 R语言的跨平台通信/ [% C9 ]. \1 @, K( [/ ^4 M
4.1 Rserve与Java的跨平台通信% X/ S9 m2 |/ k$ ]( m% Z) T
4.2 Rsession让Java调用R更简单+ B% _8 E/ Q5 F" p! ~
4.3 解惑rJava R与Java的高速通道* D& t7 U: s8 ?# a& ?: Z5 Y |- r
4.4 Node.js与R跨平台通信
2 O* h7 k3 L$ L! @. t& l" E; e+ Q 第5章 R的服务器实现
( J" n0 [9 b7 d- G" U& j& O8 i$ b 5.1 R语言服务器程序Rserve详解
I/ d: \3 o; J) \. G 5.2 Rserve的R语言客户端RSclient. }: y5 L. \& l4 A7 K$ y( [* A- Y
5.3 FastRWeb:跑在Web上的R程序; X. }' y% }$ e h2 Z3 ~+ _8 [
5.4 R语言构建Websocket服务器
' x1 o' p+ p. N3 I' j 第三部分 数据库和大数据
3 T, \: L w% g2 {2 N* _ E- s( f 第6章 数据库和NoSQL
8 ~' \1 h- ?0 [* W 6.1 RMySQL数据库编程指南
4 a# O& z7 |$ W% A 6.2 R利剑NoSQL 之MongoDB/ i* H5 i* j; n
6.3 R利剑NoSQL之Redis/ D: `3 f, @1 S( n$ q) k/ n
6.4 R利剑NoSQL之Cassandra# i, o3 D {3 z- Q* a
6.5 R利剑NoSQL之Hive$ U1 {0 C+ v, y. |; g
6.6 用RHive从历史数据中提取逆回购信息
' O# _7 [$ w, n' l! w1 w 第7章 RHadoop# ^) k/ n1 E8 K5 [' s
7.1 R语言为Hadoop注入统计血脉
( G) ^9 A, ]0 y8 `; ]1 k 7.2 RHadoop安装与使用
' x9 J0 c: C3 A7 ]( b! d 7.3 RHadoop实验:统计邮箱出现次数
% K/ V1 ]( ~4 h+ h 7.4 RHadoop实现基于MapReduce的协同过滤算法$ s9 E" [- l! S+ I
7.5 rHBase安装与使用: u7 Z. F5 e+ B% I$ a3 Y
7.6 解决RHadoop安装错误:PipeMapRed.waitOutputThreads()
8 V$ V1 L/ k/ X3 F 第四部分 附录/ m$ X0 X2 |& K
附录A Java环境安装, A5 v( H {0 m& c4 S
附录B MySQL数据库安装
5 Q6 `5 ?9 M6 X( z 附录C Redis数据库安装( }( w# s& Z$ ^
附录D MongoDB数据库安装
* y+ Z8 f5 o' U2 Y3 X- J 附录E Cassandra数据库安装! B+ E7 O& t4 l4 M9 q, C! W0 b. y
附录F Hadoop安装" w/ B. J* d x* x3 a1 j# @
附录G Hive环境安装
/ `5 e/ P2 M) z |7 e 附录H HBase安装: C& \, z V' D. O' w& p
媒体评论
) B r, Q& q% o1 O& w( f) J “近几年出版的关于R语言的书籍主要从统计学知识或编程语法等角度来写,张丹的《R的极客理想》以作者多年开发经验为素材,从工程角度描述了R语言的诸多让人兴奋的特性,以及R语言同其他主流开发环境的协同。我相信《R的极客理想》可以让数据开发者少走弯路,同时也是对统计工作者视界的有益的补充!”
- |# \9 Q" Q% @2 q* F* G+ X ——刘思喆 京东推荐算法经理% R, `' o3 g3 C G. p
“学习R语言,不仅是学一门编程语言,同时你也在学习一门新的学科——数据科学。不管你是程序员还是数据分析师,张丹的这本书都会是带你走进数据科学后花园的藏宝图,它会告诉你如何将R语言直接应用在企业环境中,也会告诉你如何将大数据技术与R语言结合,更快更轻巧地创造价值。”
& Q- t: d& `+ J& B+ W ——陈堰平 SupStat创始人
, p$ P8 Y. v7 y- j “这是我看过的R语言书籍中最别树一帜的。关于R基础编程和数据分析的书已经有很多,而张丹独辟蹊径,从一些较专业的扩展包入手,介绍了作为服务器的R,以及R语言和大数据技术的融合,非常符合当前发展潮流及本书标题所揭示的内容。”/ Z. b. ], L |0 Q, _, h( u3 h
——黄志洪 ITPUB和炼数成金创始人- y+ _8 |, r- }8 _
“极客不是一种身份,而是一种态度。在我眼里,这个词是中性的,极客不代表一个人有多牛,而是他的钻研态度、好奇心以及对新技术的识别和接受能力。张丹这本书给大家提供了一条通向R极客之路,但这绝对不是终点。希望读者通过这本书能感受到作者探索的乐趣,保持开放心态,积极学习,然后找到适合自己的极客理想。”
- b$ x8 l6 q) H5 V/ [: W ——谢益辉 RStudio程序员+ g4 [- v4 H5 J- h4 F }+ i
前言' @: W1 p" K* n5 j# M9 q
前言* j1 \& o1 Q2 Z4 v1 }' R2 [1 C
为什么要写这本书! Y) [/ T( O1 c8 Z3 z
我是一名程序员,前后做了10年的程序开发工作。在这10年间,我从程序员一路做到架构师,经历了太多的系统和应用。我做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后开始用PHP……如同其他程序员一样,我一度陶醉于追求各种技术的创新,但始终有一个问题困扰着我,那就是如何才能够将我所掌握的技术转变成价值?这就好比我面对着一座金山,我拥有先进的技术,可以制作各种性能稳定、功能卓越的挖掘机器,但我不懂如何将矿石提纯,变成金子!每每看到别人利用我的技术挖掘出金子时,我只能满脸的羡慕,心中无限的不甘。
2 T/ H! s$ V9 @, b! J 直到遇见R语言,我豁然开朗。R语言为我从另外一个角度开启了宝藏的大门,也让我对自己的职业重新思考、规划,最后坚定了我向统计、金融行业的转型。如果你也存在以上的问题,不如随着本书一起进入R语言的世界,领略R语言特有的魅力,通过对R语言的学习,重新认识大数据的价值,更深一步地提升个人价值。
1 y' I: B- ~1 R! P2 _; ^. | 随着我与统计、金融领域的朋友交流地逐步深入,我深刻地体会到,他们对R语言的实际使用也存在着很大的问题和困惑。比如,他们在某些实验室环境下,使用R语言可以很轻松、很顺利地实现预期效果,但是移植到真实环境下,面对浩瀚繁复的大数据,在使用R语言的过程中出现了很多问题。这就好比面对一座金山,他们掌握着先进的提纯技术,但他们所使用的挖掘、采集工具却还停留在石器时代!使用工具的落后,使他们要面对大量R语言之外的问题,这让他们应接不暇,甚至崩溃!有的人甚至因此认为,R语言只是一种实验室语言,至少以现在的技术水平无法将它运用到现实生活中,R语言在现实生活中广泛应用,简直是天方夜谭!
8 ^8 R; j A# e 是的,如果你是一名没有计算机背景的R语言使用者,你在实际使用中也同样会遇到许多这样或那样的问题,面对这些棘手的问题寝食难安,尝试着通过各种方式寻求解决方案。其实,在计算机领域,这些问题已经早就有了成熟、有效的解决方案。
' b8 _( x5 _2 L; C6 U3 V o 本书的内容来自我在R语言实际使用过程中的经验总结,基本都是我在工作中使用R语言的真实记录,其中涉及计算机、互联网、数据库、大数据、统计、金融等领域,详细总结了R语言在实际使用时与Java、MySQL、Redis、MongoDB、Cassandra、Hadoop、Hive、HBase等技术综合运用的解决方案,具有实战性,可操作性强。如果你与R语言接触时间不长,本书可以让你看到R语言在各行业、各领域所散发的魅力;如果你在某行业使用R语言已经有一段时间了,可能在使用R语言的过程中遇到了瓶颈,本书将让你看到R语言在与其他计算机语言结合后所迸发的强大活力;如果你是技术人员,本书中有全局观的案例实施,也许会给你带来新的启发,甚至跟我一样,重新规划自己的职业生涯,找到学习、奋斗的新方向;如果你是企业的中高层管理者,在本书中可以看到我们已经实现的技术成果,如果需要,你甚至可以按照书中记录的详细操作步骤,直接在企业环境中实施,直接获利!
9 N, ?; |0 M7 V& n: h' s# X9 ] 在此,我不得不强调,本书不是入门书,不讲R的语法,如果你想学习R语言的基础语言入门知识,那么,你来错地方了。但是,如果你已经具备了一定的R语言基础,但不一定具有计算机语言背景,我将告诉你R语言在真实环境下到底都能够做什么,并且详细地告诉你怎样一步一步地实施。
; i5 `$ P2 W! n/ t 在与各界R语言初学者的交流中,我发现,入门后,学习R语言最大的问题,在于如何使用R语言的众多软件包,而介绍这方面的图书很难找到,只有一些网上流传的小册子。本书涉及了30个R语言包,并结合我的使用心得及案例分析,相信会解决大家R语言入门后的困扰。
" |1 A- M: w, C 本书是“R的极客理想”系列图书的第一本,姊妹篇《R的极客理想—高级开发篇》将深入介绍R语言底层原理,并使用R语言开发出企业级的应用。
9 I! l/ @3 x* S g 本书的使用环境涉及Linux Ubuntu和Windows 7两种操作系统,R语言包的2.15.3和3.0.1两个版本,在每一节中都有明确的标识。3 l( t2 T8 Y$ c1 ]3 ?. Z
R语言还在不断地进步和更新,它将引导一场数据的革命,跨学科的结合是时代趋势,也是我们的机遇!6 D. v8 b/ c% y& [" t C
读者对象4 n4 s+ \1 N9 A
本书适合以下R语言工作者:# G, ?. A# }& L1 E% c" m
?计算机背景的软件工程师;5 M% \2 e5 R4 y1 A3 H. c
?数据库背景的DBA;1 X! M* Z+ D3 s2 y' l
?数据分析背景的数据科学家;. Z! T; k# ^+ Z6 n
?统计背景的科研工作者;
. H9 ]2 X) J6 ?" L2 J$ ?6 q- t2 j$ Y ?大专院校相关专业的学生。
! s/ [! \6 L0 L5 Y9 t2 Y 如何阅读本书
" y& m8 b h; J8 r- T% _/ e5 @' { 本书的内容分为四个部分。8 J9 ~1 h$ Z$ J! }% N! E
第一部分是R基础(第1~3章),介绍了为什么要学习R语言,R语言不同版本的安装,以及R语言中常用的12个软件包。帮助读者快速了解R语言的工具包、时间序列包和性能监控包。
1 K' S7 Y0 [; }8 ~% R; l9 r# g 第二部分是R服务器(第4~5章),介绍了R语言与其他编程语言的通信,以及R语言作为服务器的应用。帮助读者打通R语言与其他编程语言的通道,并实现R语言的服务器应用。
D6 M" S) l# s! o% T+ D% K 第三部分是数据库和大数据(第6~7章),介绍了R语言与各种数据库的通信,以及R语言与Hadoop集成。帮助读者打通R语言与各种数据库层的通道,并实现R语言对基于Hadoop大数据的处理。8 {) y" j2 l( L# R
第四部分是附录,介绍了Java、各种数据库以及Hadoop的安装方式。笔者希望读者可以在不借助其他参考书的情况下,完成书中所有实例。' }- i4 _( B% I$ k2 b) D
本书为工具书,每节之间没有特别的顺序要求,你可以选择任何你感兴趣的章节进行阅读。如果你是一名初学者,想全面掌握R语言,请按顺序阅读全部的章节。
1 i6 Q1 ]) A- H: S/ [ 勘误和支持
; u' F/ T) S y% l2 N% c. U( K/ s 由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者创建一个在线的图书交流网站(https://onbook.me),方便与读者进行沟通。如果读者在阅读过程中遇到问题,也可以在网站中留言,我将尽量在线上为你提供最满意的解答。书中的全部源代码都可以从华章公司网站(www.hzbook.com)或本书交流网站下载,我也会及时更新代码。本书为黑白印刷,关于更绚丽的彩色图片,读者运行源代码即可看到。如果你有什么宝贵意见,欢迎发送邮件至bsspirit@gmail.com,期待能够得到你真挚的反馈。
( E7 R \1 H# L" M' m7 c 致谢
' U0 L+ z9 e& W- d: d# Y4 x 感谢我的团队,林伟林、林伟平、邓一硕,让我们因R语言走到一起。感谢机械工业出版社华章公司的编辑明永玲,帮助我审阅全部章节,引导我顺利完成书稿。感谢我的爸爸、妈妈和爱人,感谢你们对我工作上的支持和生活上的照顾!
R4 G. b4 w* y* J" V" w4 v 谨以此书献给我最亲爱的家人以及众多R语言爱好者们!
1 W) U% h9 A! I8 @6 F# ?+ c! N 张丹
: [9 ?+ A1 I- g7 E" Y 2014年5月于中国北京
# x. R( E, \$ T. Q7 t6 ? 精彩书摘
; i7 L5 L4 O) Y% s 本章主要介绍了为什么要学习R语言,R语言软件的安装,R语言的开发工具,以及R语言中常用的几个软件包,以帮助读者快速了解R语言的工具包,激发读者对R语言的学习兴趣。+ C- d% i* p/ }: [
问题" m2 n7 M5 u' u6 |. {$ @0 f
为什么要学R语言?
7 l4 b C2 _+ t8 O3 f& n# n 引言
+ Z# p) _# m# W" l 如果要问在Node、Lua、Python、Ruby和R这5种语言中,哪个语言在2014年的应用前景会更好,我会毫不犹豫地选择R,而且我认为R语言不仅是2014年,也是以后更长一段时间内的明星。在本书开篇,我们就谈谈为什么R语言是最值得学习的编程语言。
% b: {9 G; K9 q6 C. M 本人是程序员、架构师,从编程入门到今天,一直深信着Java是改变世界的语言,Java已经做到了,而且一直很辉煌。但当Java越来越强大,覆盖领域越来越多,变得无所不能的时候,它反而不够专业,这就给了其他语言发展的机会。# K: F! i5 K6 @( I! x
我已使用Java语言11年,R语言3年,Node 1年,对于这个问题“哪个语言在2014年的应用前景会更好”,我选择R语言。) O1 I, N4 A: k) i% u6 S1 U, U
从下面的9个方面来说明我选择R的原因。3 Z% m3 B4 A5 G: Z6 ?. a
R的基因: \/ l3 T/ ?, O/ o: B. Y5 d
R的发展
2 X/ H& M! y* j9 D! z+ h* e: v R的社区和资源5 L( U. a5 U8 L, }/ g' m2 w* ]
R的哲学, U K, ^" b& b- m6 p+ P+ @4 W4 o$ R7 |
R的使用者
) B" u$ h( V% q2 ?; L% T+ \ R的语法5 P$ u' S4 Y8 C" g. g( `# w
R的思维模式
7 k- [0 F1 ?- @! {- s) T; z R解决的问题
; k% ?- R' }" D/ G R的不足
0 I- i# ?. C$ g" s. Z" s 1992年,新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两位统计学家,为了方便教授初等统计课程,发明了一种编程语言,因为他们名字的首字母都是R,于是R便成为这门语言的名称。
( K4 O: E( z5 j2 }* S1 y 从开始学习R语言,我就开始了知识的跨界思考。统计学基于概率论,概率论又基于数学,用计算机的方式编程,同时解决某个领域的实际问题。多种学科知识的交集,决定着我们解决问题的能力。统计的基因,让R语言与众不同!
; ~) `7 r; ]4 m. M" }' A8 n- H R一直在小众领域成长着,最早也只有统计学家在用,主要用来代替SAS做统计计算。然而时代在进步,随着大数据的爆发,R终于在这一波浪潮中被工业界所发现。然后,越来越多有工程背景的人加入到这个圈子,对R的计算引擎、性能以及各种程序包进行改进和升级,让R获得了新生。
, b1 n I3 V6 K$ X. K/ i 我们现在用到的R语言软件,已经越来越接近工业软件的标准了。由工程师推动的R的发展,其速度远远地超过了由统计学家推动的发展。随着人们对数据分析需求的进一步增加,R会以更快的速度继续发展,将成为免费的、开源的数据分析软件的代名词。0 c7 O+ N* C0 e# u( R4 u2 T
R的发展离不开R的各种社区支持,尤其是R的官方社区支持。在R的官方网站中,我们可以下载到R语言软件、R的第三方软件包和R的其他支持软件。当然,我不得不承认R的官方网站(//www.r-project.org/)从Web页上看起来太简陋了,稍微调整一下CSS样式表,都会比现在好看很多。也许这种简单、无修饰也是统计学家的基因吧。R语言的社区资源同其他语言一样丰富,除了官方社区,还有开发者论坛(//r.789695.n4.nabble.com/)、R-Journal列表(//journal.r-project.org/)、软件包列表、R语言图书列表以及R用户组等。
" v3 h6 M( ?3 D% X# I1 ]R的极客理想——工具篇 (数据分析技术丛书) 张丹 PDF
. B3 g- P* \$ w6 s$ [+ U游客,本下载内容需要支付 1共享币,购买后显示下载链接立即支付 0 S9 L& f& [) F# ?' X
R的极客理想——工具篇 (数据分析技术丛书) 张丹 EPUB
6 ]" f8 b, t5 V& E, t游客,本下载内容需要支付 1共享币,购买后显示下载链接立即支付 . V7 W+ |, G1 d+ ?9 F
R的极客理想——工具篇 (数据分析技术丛书) 张丹 AZW3
L A$ M4 M- X7 ?游客,本下载内容需要支付 1共享币,购买后显示下载链接立即支付 4 C& l, p" y' q& u( T6 I1 _
( D0 n5 r) Z3 ?0 H3 j
! R' B- t0 \! @ Y8 A: N) |$ c |