图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权内容提要R是一个开源项目,具有强大的统计计算及制图能力,是从大数据中获取有用信息的绝佳工具,在各种主流操作系统上都可以安装使用,其基本安装就提供了数以百计的数据管理、统计和图形函数。另外,社区开发的数以千计的扩展(包)为R增加了更多强大功能。本书注重实用性,是一本全面而细致的R指南,高度概括了该软件和它的强大功能,展示了实用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。本书适合数据分析人员及R用户学习参考。图灵程序设计丛书R语言实战定价:79.00元读者服务热线:(010)51095186转604 印装质量热线:(010)67129223反盗版热线:(010)67171154著 [美]RobertI.Kabacoff译 高 涛 肖 楠 陈 钢责任编辑 毛倩倩人民邮电出版社出版发行 北京市崇文区夕照寺街14号邮编 100061 电子邮件 315@ptpress.com.cn网址 北京 印刷开本:800×1000 1/166印张:25.5 彩插:2字数:602千字2013年1月第1版印数:1—4000册2013年1月北京第1次印刷著作权合同登记号图字:01-2011-7806号ISBN978-7-115-29990-1◆◆◆图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权20304050602030405060dosedrugA2030405060152025303540dosedrugB图3-7 药物A和药物B剂量与响应的折线图auto.4standard.4auto.6standard.6auto.8standard.81015202530MPGDistributionbyAutoTypeAutoType图6-14 不同变速箱类型和汽缸数量车型的箱线图图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权drat1002003004001015202530dispwt3.03.54.04.55.0mpgVariablesOrderedandColoredbyCorrelation23453.03.54.04.55.023451015202530100200300400图11-6 gclus包中的cpairs()函数生成的散点图矩阵。变量离主对角线越近,相关性越高3DScatterplotwithVerticalLines1015202530350100200300400500wtdispmpg123456图11-12 添加了垂直线和阴影的三维散点图图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权5001000150050100150200Age(days)Circumference(mm)TreeGrowthexampleoflineplotTree12345图11-19 展示五种橘树生长状况的折线图图11-20 mtcars数据框中变量的相关系数图。矩阵行和列都通过主成分分析法进行了重新排序−11−4−202426Pearsonresiduals:p−value=2e−16SexSurvivedClassAgeCrewYesNoAdultNoChild3rdChildAdult2ndAdultChildChild1stFemaleMaleAdult图11-23 按船舱等级、乘客性别和年龄层绘制的泰坦尼克号幸存者的马赛克图图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权NumberofMissings02468101214BodyWgtBrainWgtNonDDreamSleepSpanGestPredExpDangerCombinationsBodyWgtBrainWgtNonDDreamSleepSpanGestPredExpDanger429322211图15-2 aggr()生成的sleep数据集的缺失值模式图形0102030405060IndexBodyWgtBrainWgtNonDDreamSleepSpanGestPredExpDanger图15-3 sleep数据集按实例(行)展示真实值和缺失值的矩阵图。矩阵按BodyWgt重排01002003004005006000123456GestDream1240图15-4 做梦时长与妊娠期时长的散点图,边界展示了缺失数据的信息图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权错误!文档中没有指定样式的文字。31234581014967121113版权声明OriginalEnglishlanguageedition,entitledRinAction:DataAnalysisandGraphicsWithRbyRobertI.Kabacoff,publishedbyManningPublications.178SouthHillDrive,Westampton,NJ08060USA.Copyright©2011byManningPublications.SimplifiedChinese-languageeditioncopyright©2013byPosts&TelecomPress.Allrightsreserved.本书中文简体字版由ManningPublications授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。版权所有,侵权必究。图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权IV那些年,我们一起学过的R语言那些年,我们一起学过的R语言公元前2007年上半年的一天,一堆做基因组序列分析的代码让我认识了R语言。那是一份高质量的R代码,各种标准的向量化操作、匿名函数、优美的代码格式让我欣喜,也让我茫然。同年暑假,有幸到清华大学学习,刘军老师布置下来的作业是用HMM模型预测蛋白质二级结构。我壮着胆子,硬着头皮,以C语言的风格用R语言完成了作业(各种循环,各种丑陋的标量)。那些年,R语言所有的参考资料就是官方的几本手册,但庆幸的是,还有丁国徽博士翻译的中文版。公元纪年开始2008年的初冬,北京市海淀区中国人民大学的一间阶梯教室内,举办了一场小众、既不太学术技术档次也不高的会议。教室外的墙上挂着一条横幅,上书“第一届中国R语言会议”。这算是R语言在国内发展历程中的一个里程碑。100多人参加了为期一天多的会议。参加那次会议的人不少都成为了现在中国R语言社区最活跃的人,比如谢益辉、刘思喆、李舰、张翔、魏太云、陈堰平等人。当然,其中也有当时就已经算是R语言社区元老的吴喜之老师和丁国徽博士。没记错的话,当时出席会议的还有机械工业出版社的编辑。因为作为会议的承办机构,统计之都社区()的骨干们已经想通过出版一本高质量R语言书来推动R语言在中国的发展,而出版界也已经开始注意到这个小众市场。那时候,大部分R语言书籍来自学术界。水平高深莫测的专家教授们,乃至R语言的发明人RobertC.Gentleman大叔写出来的书,都让我这种初窥门径的人越看越糊涂。同时,中文的R语言书籍也开始出现,但都只是将R语言作为某个特定领域(比如生物信息学)的数据分析工具。文艺复兴会议举办了,人也都混了个脸熟,但R语言在国内的发展依旧不温不火。直到2011年,大数据突然火了起来,R语言一举杀进编程语言排行榜前20名。刘思喆同学在“码农”界主流媒体《程序员》上的文章,让R语言一下子走到了很多人面前。大家发现,这个经常被描述成统计编程语图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权那些年,我们一起学过的R语言V12345106789言的东西并不是仅仅擅长统计,其底层融合C/C++/Fortran等各种语言的优势、层出不穷的新模型、日趋成熟的开发设施,再加上它跟Hadoop、多核计算、MPI等高性能计算技术的迅速结合,让人们看到了它在大数据时代的潜力。O’Reilly、Manning等技术图书出版商迅速跟进。与以往的学术出版社不同,它们的加入让R语言书籍更容易被普通读者接受,也迅速降低了R语言的门槛。你现在翻开的这本书,就是由业内大名鼎鼎的Quick-R网站()的创始人RobertI.Kabacoff撰写并由Manning出版的。全书分为四部分,由浅入深地介绍了R语言本身,以及如何用R语言实现或简单或复杂的数据分析和绘图。而书后8个附录中关于大数据分析、自定义启动环境、图形界面等方面的内容,有一些早已被志愿者翻译成中文在互联网上广泛流传。本书内容质量之高,权威性之强,由此可见一斑,足以帮读者快速地走过我曾经历过的迷茫。结束公元纪年这本书的翻译工作开始的时候我还在学校读书,实验室里有两三个人在使用R语言做数据分析,为发表论文而努力。现在,我坐在公司的工位上,周围的每个人都或多或少在使用R。整个研发部门一千多人,多半每天都会用到R语言。R语言已经是新员工技术培训的必修内容。若干天前,同事们在讨论中描绘出一个宏大的愿景:用高效的数据分析手段,建立起海量生物实验数据到所有生物表型的预测模型。如果成功,这将结束公元纪年。这个愿景的核心不是新的生物实验技术,也不是如何采集样本,而是数据分析。有点画大饼的意思了,就此打住。让我们翻开这本书,或许,公元纪年真的能在我们手中结束。——陈钢2012年9月4日夜于深圳华大基因研究院图灵社区会员matrixvirus(matrixvirus@163.com)专享尊重版权6那些年,我们一起学过的R语言(译者序)译者致谢感谢我的家人和女朋友敏敏,在翻译本书的过程中,他们给了我无限的支持与鼓励;感谢好友肖楠和师兄陈钢,他们细心的校正和耐心的解惑让翻译进行得更加顺畅;感谢统计之都的谢益辉博士和魏太云师兄,他们引领我走上了R之路,让我在统计的世界里获益匪浅;感谢所有R包贡献者无私的分享,他们让统计变得更加多姿多彩!——高涛感谢我的家人,他们的支持和宽容让我在艰难时刻获得了内心的平静;感谢我的导师许青松教授在学术上的悉心指导和严格要求;感谢中国人民大学的魏太云师兄引导我走上技术的通途;感谢无名的R黑客们,是他们的无私贡献,铸就了这把统计计算的“屠龙刀”。——肖楠首先要感谢两位合作者:肖楠和高涛。虽然整本书的翻译工作是我发起和协调的,但其实是他们高效地完成了这本书绝大部分内容的翻译,质量也大大超出了我的预期。我非常高兴能有机会跟他们合作。感谢明尼苏达大学的龚午鸣博士和现在不知在何处高就的TongbinLi博士带领我进入R语言的世界。感谢统计之都和历届R语言会议的主办者为R语言在中国的发展付出的不懈努力。感谢参与此书出版工作的傅志红、岳新欣和毛倩倩等编辑。另外要感谢DirkEddelbuettel同意我们将其在JournalofStatisticalSoftware上对此书的评论翻译成中文出版。谨以此书献给我的夫人王倩和儿子陈涤菲,他们是我所有努力的动力源泉。——陈钢(matrixvirus@163.com)专享尊重版权前言VII12345106789前言要是一本书里没有图画和对话,那还有