4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
TheArtofRProgramming(中文版)-其它文档类资源-CSDN下载
来自 : CSDN技术社区 发布时间:2021-03-25

非常易懂的R语言入门书,可以配合MOOC的数据挖掘系列课程来用。
译者序R是一种用于统计计算与做图的开源软件,同时也是一种编程语言,它广泛应用于企业和学术界的数据分析领域,正在成为最通用的语言之一。由于近几年数据挖掘、大数据等概念的走红,R也越来越多地被人关注。截至本文完成之日,CRAN(htp:/ cran r-project.org/上共有4383个包,涉及统计、化学、经济、生物、医学、心理、社会学等各个学科。不同类型的公司,比如 Google、辉瑞、默克、美国银行、洲际酒店集团和壳牌公司都在使用它,同时以S语言环境为基础的R语言由于其鲜明的特色,一出现就受到了统计专业人士的青睐,成为国外大学里相当标准的统计软件直以来,国内外关于R语言的著作都是以统计学专业的视角来介绍R语言的,对R语言本身的特性讲解得并不详尽,而软件自带的官方文档又显得过于技术,不那么亲民。另一方面,很多接触R的朋友都来自非计算机专业,没有接受过编程训练,他们使用R的时候,编写出来的代码通常只能算是一条条命令的集合,面对更复杂的问题,常常束手无策。记得在某届R语言大会上,有位SAS阵营的朋友说,他看到演讲者所展示的代码里只有函数调用,没有编程的东西,所以他觉得R不能算一种编程语言。其实,他错了,此时你手里这本书,覆盖了其他大部分R语言图书没有涉及的编程主题。这本书就如同R语言的九阳神功秘籍,当神功练成,任督二脉一旦打通,再学习针对某一领域应用的函数或包就如庖丁解牛一般。顺便提一下,据微博上的小道消息,前面提到的那位朋友最近也开始学R了本书的特点表现在以下几个方面第一,对读者的统计学知识和编程水平要求并不高。与很多R语言书籍不同,这本书并不需要很深的统计学功底,它从纯语言的角度入手来讲解R。对于有一定编程经验却没什么统计学背景的人来说,读这本书会比较顺畅,读者就可以重点关注R语言的特性在数据分析方面的应用。在有的地方,作者也会提醒那些有其他语言编程经验的人应该注意R语言有什么不同之处。而对于没有编程经验又想使用R做数据分析的人来说,这本书也是学习编程的绝佳教材。第二,专注于R语言编程。作者没有把这本书定位为菜谱式的手册,也不像有些R话言图书那样介绍完统计学某方面应用之后简单地把R语言代码摆出来。翻开这本书的目录,你几乎看不到统计学的术语。本书系统介绍了R语言的各种数据结构和编程结构、面向对象编程方法、 socket网络编程、并行计算、代码调试、程序性能提升以及R语言与其他语言的接口等主题。书中也提到了不少编程的小技巧,这都是作者多年编程经验的总结第三,丰富的案例分析。作者 Matlof教授是位计算机科学家,同时也是位统计学家,有多年的教学经验,也做过统计学方法论的顾问。除了正文中的例子之外,本书还有44个扩展案例,很多案例源自作者亲身参与过的咨询项目。虽然本书没有讲解任何统计模型,但是扩展案例都是和数据分析相关的,比如对鲍鱼数据的重新编码(第2章)、寻找异常值(第3章)、文本词汇索引(第4章)、学习中文方言的辅助工具(第5章)等。通过学习这些案例,读者不仅能学到R语言的每种概念如何运作,也会学到如何把这些概念组合到一起成为有用的程序。比如第10章介绍了 socket网络编程之后,就用一个扩展案例讲解如何用 socket实现并行计算,这为第16章详细讲解并行计算做好了铺垫。在很多案例里,作者讨论了好几种设计方案,并比较了这几种方案的不同之处,以回答“为什么这样做”,这对于缺少编程经验的人来说,是非常好的安排。本书第1章简要介绍了R语言的几种数据结构和编程基础,其余章节可分为三大部分第一部分(第2~6章)详细介绍R的几种主要的数据结构:向量、矩阵、列表、数据框和因子等。对很多人来说,R复杂多变的数据结构真的是一只拦路虎。而本书从最简单的向量开始,一步一步引导读者认识并掌握各种数据结构。第二部分(第7~13章〕涉及编程方面:编程结构和面向对象特性、输入/输出、字符串处理以及绘图。值得一提的是第13章,这章主要讲解的是R语言的调试。很多朋友在实际工作中有这样的经历,你可能用了一个小时就写好代码,却用了一天的时间来调试。可是到目前为止还没有在其他图书上看到与R语言调试相关的内容,甚至也很少见到关于其他编程语言调试的图书。本书刚好填补了这方面的空白。如果读者仔细读完第13章,并实践其中的调试技巧,一定能事半功倍,也就能少熬点儿夜,有延长寿命的功效。本书的作者同时也著有《调试的艺术》( The Art of Debugging),相信他在R语言调试方面的功力也是相当第三部分(第14~16章)介绍的是更高级的内容,比如执行速度和性能的提升(第14章)、R语言与C/C艹+或 Python混合编程(第15章)以及R语言并行计算(第16章),虽然最后一部分属于编程的高级内容,但如果读者从前往后一直学下来,随着能力的提高,也是可以读懂的。本人从2007年开始接触R语言,那时候市面上几乎没有R语言方面的书籍。当时我关于R语言的所有信息几乎都是来自统计之都(http://cos.name和谢益辉的博客(http://yihuiname)。2008年冬天,统计之都成功举办了“第一届中国R语言会议”,来自各地的R语言用户们齐聚一堂,交流心得。从那以后,每年的R语言会议都会在北京和上海举办。这几年来,统计之都的队伍也逐渐壮大,比如本书的其他三位主要译者:邱恰轩、潘岚锋和熊熹,当年他们参加R语言会议的时候还是人大统计学院大一、大二的学生,后来也成为R语言社区的领军人物。去年我们接到本书的翻译任务时,他们三人分别收到了美国普度大学、爱荷华州立大学以及明尼苏达大学的录取通知,现在已经在美国留学深造。希望有越来越多的人加入统计之都的大家庭,和大家一起成长,为中国统计事业的发展尽自己的一份力。在翻译过程中,几位译者力求忠实于原文,但纠正了原书的几处错误,同时也兼顾中文表达的流畅,不过译文中可能仍有不当之处,欢迎读者予以指正。除了本人以及前面提到的三位译者之外,统计之都的三位老朋友林宇、严紫丹和程豪也参与了本书部分章节的校审和初稿翻译,在此表示感谢。全书译文最后由本人统稿,如有错误之处,均由本人承担。也感谢机械工业出版社的吴怡编辑,她给予了我们细心的帮助。统计之都的图书出版栏目(网址是ht: os. name/ books,/)有本书的页面,读者可以在这里下载本书的数据和代码,也可以留言提问。2013年3月于新华通讯社第三工作区本书三位主要译者都是统计之都(htt: cOS. name)的管理员、中国R语言会议理事会成员。陈堰平毕业于中国人民大学统计学院,现任国家金融信息中心数据中心研发部负责人,从事指数编制、指数化投资、金融衍生品方面的工作,对金融数据分析有多年的研究,博客网址为htt:/ yanping me。邱怡轩是普度大学统计系在读博士研究生,开发过carpark、R2SWF、 Layer等R语言程序包,博客网址为htp:/ yixuan. cos. name。潘岚峰是爱荷华州立大学统计系在读博士研究生,开发过R语言程序包 bignmfR是一种用于数据处理和统计分析的脚本语言,它受到由AT T实验室开发的统计语言S的启发,且基本上兼容于S语言。S语言的名称代表统计学( statistics),用来纪念AT T开发的另一门以一个字母命名的编程语言,这就是著名的C语言。后来一家小公司买下了S,给它添加了图形用户界面并命名为S-Plus由于R是免费的,而且有更多的人贡献自己的代码,R语言变得比S和S-Plus更受欢迎。R有时亦称为GNUS,以反映它的开源属性。(GNU项目是开源软件的一个重要集合。)为什么在统计工作中用R粤语有个词“又便又靓”,意思是“物美价廉”,R语言就是这样一种工具,为什么还要用别的呢?R语言有许多优点:它是广受关注的统计语言S在公众领域的实现,而且R/S已经是专业统计学家的实际标准语言。·在绝大多数情况下,它的功能不亚于甚至优于商业软件,比如它有大量的函数、良好的可编程性、强大的绘图功能,等等。在 Windows、Mac、 Linux等操作系统上都有相应的版本。除了提供统计操作以外,R还是门通用编程语言,所以你可以用它做自动分析、创建新的函数来拓展语言的现有功能·它结合了面向对象语言和函数式编程语言的特性。·系统在两次会话之间可以保存数据集,所以不需要每次重新加载数据集。R还可以保存历史命令。·因为R是开源软件,所以很容易从用户社区获得帮助。另外,用户们贡献了大量的新函数,其中很多用户都是杰出的统计学家。我必须事先提醒你,最好直接在终端窗口输入命令并提交给R,而不是在GU里用鼠标点击菜单,并且大多数R用户都不用GUI。这并不是说R不能图形化操作。相反,它有很多工具可以生成实用、美观的图形,不过这些工具是用在系统输出方面,比如画图,而不是用在输如果你离不开GUI,则可以选用一种免费的GUI,它们是为R开发的,比如下面几种开源的或免费的工具:RstuDio,http://www.rstudio.orgStatet,http://www.walware.de/goto/statet/Ess(emAcsSpeaksStatistics),http://ess.r-project.orgR Commander: John Fox, The R Commander: A Basic-Statistics Graphical Interface to RJournal of Statistical Software 14, no. 9(2005): 1-42Jgr(jAvaGuiforR),http://cran.r-project.org/web/packages/jgr/index.html前三种软件, STudio、 StatET和ESs属于集成开发环境( Integrated DevelopmentEnvironments,IDE),更多地是为编程设计的。 StatET和ESS则为R程序员分别提供了针对著名的 Eclipse和 Emacs环境的IDE在商业软件中,另一种IDE出自 Revolution Analytics.公司,一家提供R语言服务的公司(http://www.revolutionanalytics.com/)因为R是一种编程语言而不是各种不相关联的命令汇总,你可以把几个命令组合起来使用,每条命令用前一条命令的输出作为输入。( Linux用户可能会认出:这类似于用管道将shel\'令串联起来。)这种组合R函数的能力带来了巨大的灵活性,如果使用恰当,功能会非常强大。下面是个简单的例子,请看这条命令:nrow(subset(x03,z== 1))首先, subset(函数针对数据框x03提取出变量z(取值为1)的所有记录,得到一个新的数据框,再把这个新数据框代入nrow()函数。这个函数计算数据框的行数。这行命令的最终效果是给出原数据框中z=1的记录的个数之前提到过面向对象编程和函数式编程这两个术语。这两个主题会激起计算机科学家的兴趣,尽管它们对大多数读者来说可能有点陌生,但是它们跟任何使用R做统计编程的人都有关。下面概述这两个主题。面向对象编程面向对象的优点可以用例子来解释,例如回归模型。当你用SAS、SPSS等其他统计软件做回归分析时,你会在屏幕上看到一大堆的输出结果。与之相反,如果在R里调用回归函数lmO,函数会返回一个包含所有结果的对象,对象里含有回归系数的估计、估计值的标准差、残差等。接下来你可以用编程的方式挑选对象里需要的部分并提取出来。你会看到通过R的方式可使编程变得更容易,部分因为它提供了访问数据的一致性。这种一致性源于R是多态的,即一个函数可以应用于不同类型的输入,函数在运行过程中会选择适当的方式来处理。这样的函数称为泛型函数。(如果你是C+程序员,肯定见过类似的概念虚函数。)例如 plot函数,如果你把它应用到一列数上,会得到一幅简单的图。但是如果把它应用到某个回归分析的输出结果中,会得到关于回归分析多个方面的一整套图形。当然,你只能在R生成的对象上使用ploO函数。这样也好,这意味着用户需要记的命令更少了!函数式编程避免显式迭代是R语言的一个常见话题,这对于函数式编程语言来说是很典型的问题你可以利用R的函数特性把迭代行为表达成隐式的,而不是用循环语句。这可以让代码执行起来更有效率,当R运行在大数据集上时运行时间会相差很大。正如你看到的,R语言函数式编程的属性有许多优点:·更清晰,更紧凑的代码·有潜力达到更快的执行速度·减少了调试的工作量,因为代码更简单·容易转化为并行编程。本书的读者对象许多人以特定的方式使用R—直方图、回归分析或者其他涉及统计运算的任务。不过本书针对的是那些希望用R开发软件的读者。本书的目标读者从专业软件开发人员,到只在大学修过编程课、为了完成特定任务而写R代码的人。(统计学知识一般不是必需的。)以下几类人可能会从本书受益:受雇于某个需要定期制作统计报告的机构,比如医院、政府机关等,为此需要开发专·开发统计学方法论的学术研究人员,所研究的方法论要么是全新的,要么就是结合了现有的方法并将其整合到一起,这些需要编程来实现,让学术界里更多的人能在市场营销、诉讼支持、新闻、出版等领域工作,需要通过编码来制作复杂图形以实现数据可视化的专家。·有软件开发经验,参与的项目涉及统计分析的专业程序员。·学习统计计算课程的学生。因此,本书不是R包中各种统计方法的纲要,其实本书更侧重于编程,覆盖了大部分R语言图书没有涉及的与编程相关的主题,我甚至是围绕编程主题展开论述的。下面是一些具体“扩展案例”展示完整的、特定用途的函数,而不是针对某个数据集的独立代码片段。你可能发现其中有些函数对你平常用R语言进行工作很有帮助。通过学习这些案例,你不仅能学到R语言的基本功能如何运作,也会学到如何把它们组合成有用的程序。在很多案例里,我讨论了其他设计方案,以回答“为什么我们这样做?”。内容上符合程序员的思维习惯。例如,在讨论数据框的时候,我不仅表明数据框是种R的列表,也指出这一事实对编程的潜在影响。我在适当的时候加入R语言与其他语言的比较,为那些刚好了解其他语言的人提供参考在任何语言里,调试对于编程都非常关键,而在其他大多数R语言书籍中却鲜有涉及。本书用了一章的篇幅来介绍调试技巧,用“扩展案例”方法真刀真枪地展示如何调试实际工作中的程序。如今,多核计算机甚至普及到普通家庭,图形处理单元(GPU)已经悄然在科学计算界引发了一场革命。越来越多的R应用涉及非常大量的计算,并行处理已经成为R程序员面临的主要课题。所以本书用一章的篇幅讨论这个主题,同样给出技术细节和扩展本书单独用一章介绍如何利用R内部行为以及其他工具的优势来加速R代码。用一章来讨论R语言与其他语言(如C和 Python)的接口,用扩展案例展示了应用方法,同时也介绍了调试的技巧。我的学术背景我绕了一个圈才走进R的世界。我完成了抽象概率论领域的博士论文之后,在担任统计学教授的前几年,我教过学生做过研究、也做过统计方法论的顾问。我是加州大学戴维斯分校统计系的创建者之一。后来我去了这个学校的计算机科学系,在那里我度过了职业生涯的大部分时间。我研究并行编程、网络流量、数据挖掘、磁盘系统性能以及其他领域。我在计算机科学领域的教学和研究大多都涉及统计学所以我既有纯粹的计算机科学家的视角,也有作为统计学家和统计研究者的视角。我希望这样的综合视角能够使我更好地解读R语言,使本书更具实用价值本书很大程度上得益于很多人的帮助和支持。首先,也是最重要的,我必须感谢技术审稿人 Hadley Wickham先生,他的成名作是ggplot2和ply这两个包。我曾向 No Starch出版社推荐过 Hadley,因为除了这两个包之外,他开发的其他包在CRAN(R用户贡献的代码库)上也备受欢迎,可说是经验丰富。正如我期待的那样, Hadley的很多评论为本书增色不少,尤其是他对某些代码示例的评论,通常他都这样开头:“我在想,如果你这么写会怎么样……”。有时这些评论会导致原本只带有一两个版本代码的例子变得要用两三种甚至更多种不同方式来实现编程目的,这样可以比较不同方法的优点和缺点,我相信读者会因此受到启发。非常感谢Jimporzak他是湾区R用户小组BayAreauseRGroup,BARUG网址http:/www.bay-r.org/)的联合创始人,在我写这本书时他曾多次鼓励我。说起BARUG,我必须感谢Jm和另一位联合创始人 Mike driscoll,感谢他们创建了这个充满活力而又富有启发性的论坛。在 BARUG,介绍R语言精妙应用的演讲者们经常让我感觉写这本书是个很有价值的项目。 BARUG也得益于 Revolution Analytics公司的资助以及该公司员工 David smith和JoeRickert付出的时间、精力,以及奇妙的想法。Jay emerson和 Mike Kane,CRAN上备受赞誉的 bigmemory包的作者,他们通读了第16章的早期文稿,并给出了极富价值的评论。John Chambers(s语言的缔造者,而S语言是R语言的前身)和 Martin Morgan提供了关于R内核的建议,这对我在第14章讨论R的性能问题有很大帮助。784节涉及了一个在编程社区很有争议的主题—一全局变量的使用。为了有一个更广阔的视角,我征求了几位专家的意见,特别是R核心小组的成员 Thomas Lumley和加州大学戴维斯分校计算机科学学院的 Sean davis当然,这并不意味着他们认可了我在这一节的观点,不过他们的评论非常有用在本项目的前期,我写了份非常粗糙的(也是非常不完整的)草稿以供公众评论,后来Ramon diaz- Uriarte、 Barbara F. La scala、 Jason liao以及我的老朋友 Mike hannon给了我很有帮助的反馈。我的女儿 Laura,一名工科学生,阅读了前面部分章节并给出了一些建议,使得本书得以完善。我自己的CRAN项目以及与R相关的研究(有些成为了本书的示例)得益于许多人的建议、反馈和(或)鼓励,特别是 Mark Bravington、 Stephen Glen、 Dirk eddelbuett、JayEmerson、 Mike Kane、 Gary King、 Duncan murdoch和 Joe Rickert ...展开详情

本文链接: http://theart.immuno-online.com/view-766353.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://