340 likes | 536 Views
欢迎走入 R 语言世界!. 谢益辉、郑冰. 2008 年 12 月 13 日. R 语言的概述. R 语言的背景. R 语言的发展. R 语言的运用. R 语言的概述. R 语言的概述. R是一门用于统计计算和作图的语言,受S 语言和 Scheme 语言影响发展而来 。 R语言最初由新西兰奥克兰大学统计系的Robert Gentleman和Ross Ihaka合作编写。. R 语言的背景. R 语言的发展. R 语言的运用. R 语言的概述. R 语言的概述.
E N D
欢迎走入R语言世界! 谢益辉、郑冰 2008年12月13日
R语言的概述 R语言的背景 R语言的发展 R语言的运用
R语言的概述 R语言的概述 R是一门用于统计计算和作图的语言,受S语言和Scheme语言影响发展而来。 R语言最初由新西兰奥克兰大学统计系的RobertGentleman和Ross Ihaka合作编写。 R语言的背景 R语言的发展 R语言的运用
R语言的概述 R语言的概述 R语言具有免费、开源及统计模块齐全的特征,已被国外大量学术和科研机构采用,其应用范围涵盖了数据挖掘、机器学习、计量经济学、实证金融学、统计遗传学、自然语言处理、心理计量学和空间统计学诸多领域。 R语言的背景 R语言的发展 R语言的运用
R语言的概述 R语言的概述 http://www.r-project.org ·关于 ·下载镜像(中国香港有一个镜像网站 ·R组织 ·文档(官方文档、用户贡献文档、卡片) ·其他 R语言的背景 R语言的发展 R语言的运用
自由的GNU R语言的概述 GNU是一套完全由自由软件构成的计算机操作系统.其名称是“GNU’s Not Unix’'的递归缩写。 GNU由Richard Stallman发起,后来在“GNU计划”下开发,目前已经包含大量的自由软件。 R语言的背景 R语言的发展 R语言的运用
自由的GNU Richard Stallman在其“GNU宣言”中提到了他发起GNU的动机如 http://www.gnu.org/gnu/manifesto.html “……I consider that the golden rule requires that if I like a program I must share it with other people who like it.……” R语言的概述 R语言的背景 R语言的发展 R语言的运用
自由的GNU R语言的概述 “自由”: ①以任何目的运行此程序的自由; ②以学习程序工作机理为目的,对程序进行修改的自由; ③再发行复制件的自由; ④改进此程序,并公开发布改进的自由; R语言的背景 R语言的发展 R语言的运用
自由的GNU R语言的概述 对统计的意义: 能够对现实生活中复杂的数据一步步的去处理,并且随时以数值或图形的形式观察中间结果,以便我们决定下一步分析应该朝怎样的方向进行。 R语言的背景 R语言的发展 R语言的运用
自由的GNU R语言的概述 对统计的意义: 避免了像商业软件在固定的分析过程中存在的问题 ①无法得到取截尾均值作为统计量 ②统计分析方法的归类不清 R语言的背景 R语言的发展 R语言的运用
自由的GNU 对统计的意义: 避免了像商业软件一样源代码不被公开,其中的具体程序过程只有内部人员清楚,用户对此毫不知情。 用户可以得知其中的计算会暗含着何种漏洞或错误。 Excel为例,有时能计算出负的方差,有时能产生有严重缺陷的随机数等等。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
自由的GNU 总之: 一是可自由计算任何想计算的统计量(包括图形); 二是保证用户能够使用正确的计算机程序,或换句话说,保证用户清楚他们利用计算机究竟在做什么。如果用户被剥夺了这种自由,那么统计分析工作的效率和信度都将大打折扣。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
R’ father S语言的荣耀 S语言是一门用于数据分析和图示的高层语言。 1998年美国计算机学会(ACM)授予了S语言的主要设计者John M. Chambers~“软件系统奖” //www.acm.org/announcements/ss99.html,用以表彰S取得的成就。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
R’ father S语言的荣耀 棕皮书:Richard A. Becker and John M. Chambers (1984),S. An Interactive Environment for Data Analysis and Graphics,'' Monterey: Wadsworth and Brooks/Cole. 蓝皮书:Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), ``The New S Language'' London: Chapman Hall. 白皮书:John M. Chambers and Trevor J. Hastie (1992), ``Statistical Models in S'' London: Chapman \& Hall. 这本书中开始介绍S3,即第3代S 绿皮书:John M. Chambers (1998), ``Programming with Data,'' New York: Springer, ISBN 0-387-98503-4 这本书介绍了S4,即第4代S 。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
Scheme语言的荣耀 R’ mother Scheme语言是LISP语言的一个方言(或说成变种),与其他lisp不同的是scheme是可以编译成机器码的。 它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,在国外广泛运用,就像国内的C++,Java,C那样受到商业领域的青睐。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
Scheme语言的荣耀 R’ mother Scheme的一个主要特性是可以像操作数据一样操作函数调用。 Scheme 其的主要目的是训练人的机器化思维。以其简洁的语言环境和大量的脑力思考而著称。 主要的Scheme环境有:MIT Scheme、DrScheme. R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑤ ⑥ 现状 成长发展期 ④ 诞生婴儿期 ③ 胚胎时期 ② ① 萌芽 思想火花 R语言的概述 R语言的背景 R语言的发展 R语言的运用
①思想火花 最早的时候,Ross Ihaka从一本书了解到了Scheme语言,Ross对Scheme非常感兴趣;大约与此同时,他获得了一版新S语言(见蓝皮书)的源代码,此时他注意到了Scheme和S语言二者之间的异同点。 后来Ross开始准备用Scheme向别人演示词法作用域,但是由于手边没有Scheme的书,就用S来演示却失败了,这让他萌生了改进S语言的想法。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
②萌芽 相当长一段时间之后,Ross Ihaka和Robert Gentlemen在奥克兰大学成了同事,他们都对统计计算十分感兴趣,而且试图为他们的实验室寻找一个更好的软件。 因为在商业软件中找不到他们想要的,这使Ross想到当初改进S语言的想法,于是他们决定自己开发一种语言。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
③胚胎时期 1993年,Ross和Robert将R的部分二进制文件放到了卡耐基·梅隆大学统计系的Statlib中,并在S语言的新闻列表上发布了一个公告。 随后有些人开始下载使用并给他们反馈,其中以苏黎世理工学院的MartinM最为突出。 Martin极力劝说两位原作者公布源代码,让R成为自由软件。于是1995年6月R的源代码正式发布到了自由软件协会的FTP上。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
④诞生婴儿期 随着开发的进行,程序版本的归档又成为问题。 维也纳工业大学的Kurt Hornik承担了这份任务,在维也纳建立了R程序的归档,使得程序版本的发布变得更加规范。 同时在世界各地也出现了R程序的镜像(如Statlib等)。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑤成长发展期 于是1997年中期R核心团队成立了,成员包括: Douglas Bates美国威斯康辛大学统计系教授 Peter Dalgaard丹麦哥本哈根大学公共卫生所副教授Robert Gentleman美国西雅图哈清森肿瘤研究中心公共卫生部计算生物学项目带头人 Kurt Hornik奥地利维也纳工业大学统计与数学系教授、主席 Ross Ihaka新西兰奥克兰大学统计系副教授 Friedrich Leisch德国慕尼黑大学统计系教授 Thomas Lumley美国华盛顿大学生物统计系副教授 Martin Maechler苏黎世理工学院数学系高级研究员 Paul Murrell新西兰奥克兰大学统计系高级讲师 Heiner Schwarte原在德国杜伊斯堡·埃森大学(现已非核心成员) Luke Tierney爱荷华大学统计与精算系教授 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑥现状 1)R源程序 截止到本文写作时,R源程序已经更新了约70个版本,目前是2.8.0版,源程序大小由1997年的959K增大到了今天的大约16M(Window二进制安装程序文件约30M);从版本更新以及文件大小来看,R的发展速度的确非常快,而且整个软件系统的体积也保持着非常小的优势,这几乎是任何一门商业软件都无法比拟的。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑥现状 R语言的概述 2)邮件列表 现今R的邮件列表仍然由苏黎世理工学院的Martin Machler提供支持,这些邮件列表分四大类:消息发布(R-announce)、附加包(R-help)、帮助(R-help)和R程序开发(R-devel)。 R语言的背景 R语言的发展 R语言的运用
⑥现状 3)R核心团队 2008年R核心团队成员数目增加到了19位,成员主要来自世界各地的大学如牛津大学、加拿大西安大略大学、意大利米兰大学等,也有来自公司企业的成员,如AT&T实验室的Simon Urbanek等。由于R的扩展性非常强,因此也吸引了大量用户编写自定义的函数包供更多人使用,这些附加包都可以从世界各地的CRAN镜像上下载。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑥现状 4)R刊物 R也有其刊物“R News”,创办于2001年,至今已经发行23期,共发表论文205篇。该刊物主要介绍R的最新特征、CRAN的动态、附加包的说明短文、编程技巧、手册和FAQ中没有介绍的小提示以及R在数据分析中的应用示例。 自2009年起,“R News”将更名为“The R Journal”。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑥现状 5)R书籍 据R官方网站不完全统计,与R语言相关的出版书籍已达68本,内容包括S语言介绍、统计编程、统计学相关领域的应用、统计模型、数据分析、统计图示和与R相关的其它软件应用等。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
⑥现状 6)R会议 从2004年起至今(2005年除外),R团队每年都会举办一次useR!会议,过去已经在奥地利、美国和德国举办了4次会议,每年参会人数和演讲篇数都在增多,例如最近一次在德国多特蒙德大学举办的useR!一共有超过400人参加、报告多达170场左右。 此外,R团队每两年也会举办一次DSC会议(Directions in Statistical Computing),讨论以R语言为重心的统计计算问题。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
虽说R语言诞生于新西兰,但后来服务器架设到了奥地利,而现在Windows主程序的维护者在加拿大、Windows附加包的维护者在德国、Mac OS版程序的维护者在美国、邮件列表维护者在瑞士…… 这样一个形式松散却有着共同目标的群体,十年来以志愿者的身份坚持不懈推动着R语言的发展;众多统计学或者相关领域的程序员也纷纷贡献自己的力量,将大量统计方法以附加包的形式发布出来,使其他不擅长编程的用户也可以以最快的速度用上最新的统计方法,而封闭源代码的商业软件则很难拥有如此强劲的推动力量:现有的统计软件可能没有哪一种能够拥有超过1500个附加程序包。 R语言的概述 R语言的背景 R语言的发展 R语言的运用
小例子 R语言的概述 例如,我们用函数t·test对一批样本量为10、来自正态分布的样本数据作t检验。 …… R语言的背景 语言的发展 R语言的运用
R语言的运用 R继承了S语言关于向量化操作以及数据结构等诸多优势,加上它面向对象的特点,所以R语言在统计编程和统计图形方面显得非常灵活。 传统商业软件的统计模型在R中都是以对象的形式存在,我们通常看到的大篇幅统计报告输出对R来说只是对象的某种特定表现形式。 R语言的概述 R语言的背景 语言的发展 R语言的运用
R语言的运用 正因R语言如此灵活,所以有诸多相关项目,比较有影响的有Bioconductor(生物信息学的应用)、R Forge(程序开发者的场所)和R Graph Gallery(R图库)等。 这些信息可以在http://www.r-project.org/otherprojects.html找到。 R语言的概述 R语言的背景 语言的发展 R语言的运用
总结 希望通过本文的介绍,让更多 中国用户了解R语言,并利用它在统计分析上的优势为自己的专业问题提供灵活的解答,而不是千篇一律陷在固定分析过程中降低数据利用效率。 同时我们也希望有更多擅长计算机编程的人士为这片“开源的海洋”贡献自己的力量,打造出一个多样化的统计分析世界。