logo资料库

R for Beginners-中文.pdf

第1页 / 共77页
第2页 / 共77页
第3页 / 共77页
第4页 / 共77页
第5页 / 共77页
第6页 / 共77页
第7页 / 共77页
第8页 / 共77页
资料共77页,剩余部分请下载后查看
导言
基本原理与概念
基本原理
对象的产生,排列及删除
在线帮助
R的数据操作
对象
在文件中读写数据
存储数据
生成数据
规则序列
随机序列
使用对象
创建对象
对象的类型转换
运算符
访问一个对象的数值:下标系统
访问对象的名称
数据编辑器
数学运算和一些简单的函数
矩阵计算
R绘图
管理绘图
打开多个绘图设备
图形的分割
绘图函数
低级绘图命令
绘图参数
一个实例
grid 和 lattice 包
R的统计分析
关于方差分析的一个简单例子
公式
泛型函数
R编程实践
循环和向量化
用R写程序
编写你自己的函数
R 相关的文献
R for Beginners Chinese Edition 2.0 Emmanuel Paradis Institut des Sciences de l’ ´Evolution Universit´e Montpellier II F-34095 Montpellier c´edex 05 France E-mail: paradis@isem.univ-montp2.fr Co-translated by: XF Wang, YH Xie, JT Li and GH Ding
中中中文文文版版版说说说明明明 “R for beginners”是一本公认的经典手册,非常适合R的初学者。英文原 版初著于2002年,而此稿是基于作者在2005年重新修订的第二版。 Emmanuel Paradis博士为本稿提供了原版所有LATEX源文件。翻译工作 由四名志愿者共同完成(Chap1–2: 王学枫;Chap3: 谢益辉;Chap4: 李军 焘;Chap5–7: 丁国徽)。由华东师范大学汤银才老师负责本文档的编辑校 订。北京大学李东风老师审阅了全稿并提出了大量宝贵意见。在此一并表示 衷心感谢! 编译仓促,差错难免,亟盼诸R友襄正。任何意见请通过pwxf@hotmail.com 联系我们。 译者 2006年4月 版权 c 2002, 2005, Emmanuel Paradis Permission is granted to make and distribute copies, either in part or in full and in any language, of this document on any support provided the above copyright notice is included in all copies. Permission is granted to translate this document, either in part or in full, in any language provided the above copyright notice is included.
目目目录录录 1 导导导言言言 2 基基基本本本原原原理理理与与与概概概念念念 2.1 基本原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 对象的产生,排列及删除 . . . . . . . . . . . . . . . . . . . . . 2.3 在线帮助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 R的的的数数数据据据操操操作作作 3.1 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 在文件中读写数据 . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 存储数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 生成数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 规则序列 . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 随机序列 . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 使用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 创建对象 . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2 对象的类型转换 . . . . . . . . . . . . . . . . . . . . . . 3.5.3 运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.4 访问一个对象的数值:下标系统 . . . . . . . . . . . . . 3.5.5 访问对象的名称 . . . . . . . . . . . . . . . . . . . . . . 3.5.6 数据编辑器 . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.7 数学运算和一些简单的函数 . . . . . . . . . . . . . . . . 3.5.8 矩阵计算 . . . . . . . . . . . . . . . . . . . . . . . . . . 4 R绘绘绘图图图 4.1 管理绘图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 打开多个绘图设备 . . . . . . . . . . . . . . . . . . . . . 4.1.2 图形的分割 . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 绘图函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 低级绘图命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 绘图参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 一个实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 grid 和lattice 包 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 3 5 7 9 9 11 14 15 15 18 19 19 24 26 27 30 32 32 34 37 37 37 38 41 42 44 45 49
5 R的的的统统统计计计分分分析析析 5.1 关于方差分析的一个简单例子 . . . . . . . . . . . . . . . . . . . 5.2 公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 泛型函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 R编编编程程程实实实践践践 6.1 循环和向量化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 用R写程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 编写你自己的函数 . . . . . . . . . . . . . . . . . . . . . . . . . 7 R 相相相关关关的的的文文文献献献 56 56 58 59 62 65 65 67 68 72
1 导导导言言言 该手册是关于R的一个入门教材.由于主要针对初学者,我将重点放在了 对R的工作原理的解释上。R涉及广泛,因此对于初学者来讲,了解和掌握一 些基本概念及原理是很有必要的。在打下扎实的基础后,进行更深入的学习 将会变得轻松许多。本着深入浅出的宗旨,本手册将大量配合图表等形式, 尽可能使用通俗的语言,使读者容易理解而并不失细节。 R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka 和Robert Gentleman1共同创立。R语言可以看作是由AT&T贝尔实验室所 创的S语言发展出的一种方言1。因此,R即是一种软件也可以说是一种语 言。S语言现在主要内含在由Insightful2公司经营的S-PLUS软件中。R和S在 设计理念上存在有着许多不同:关于这方面的详细内容大家可以参考Ihaka & Gentleman (1996) 或R-FAQ3,该文档同时随R一起发布。 R是在GNU协议General Public Licence4下免费发行的,它的开发及维护 现在则由R开发核心小组R Development Core Team具体负责。 R的安装文件有多种形式,有在Unix 或Linux系统下所需的一些源代 码(主要用C及Fortran 编写),及在Windows, Linux及Macintosh上使用的预编 译二进制码。这些安装文件以及安装说明都可以在Comprehensive R Archive Network (CRAN)5 网站上下载。该网站提供的关于Linux的安装文件只适用 于较新版本的Linux。详情请参考CRAN网站。 R内含了许多实用的统计分析及作图函数。作图函数能将产生的图片展 示在一个独立的窗口中,并能将之保存为各种形式的文件(jpg, png, bmp, ps, pdf, emf, pictex, xfig; 具体形式取决于操作系统)。统计分析的结果也能被直 接显示出来,一些中间结果(如P-值,回归系数,残差等)既可保存到专门的 文件中,也可以直接用作进一步的分析。 在R语言中,使用者可以使用循环语句来连续分析多个数据集,也可将多 个不同的统计函数结合在一个语句中执行更复杂的分析。R使用者还可以借鉴 网上提供的用S编写的大量程序6,而且大多数都能被R直接调用。 非专业人员起初可能觉得R相对比较复杂。其实,R的一个非常突出的优 点正是它的灵活性。一般的软件往往会直接展示分析的结果,而R则将这些结 果都存在一个对象“object”里面,所以常常在分析执行结束后并不显示任何结 1Ihaka R. & Gentleman R. 1996. R: a language for data analysis and graphics. Journal of Computational and Graphical Statistics 5: 299–314. 2 http://www.insightful.com/products/splus/default.asp 3http://cran.r-project.org/doc/FAQ/R-FAQ.html 4For more information: http://www.gnu.org/ 5http://cran.r-project.org/ 6For example: http://stat.cmu.edu/S/ 1
果。使用者可能会对此感到困惑,其实这样的特点是非常有用的,因为我们 可以选择的从结果中只抽出我们感兴趣的部分。例如,我们要运行20个回归 分析而只想比较其回归系数,在R中就可以选择只显示所有分析得出的回归系 数,这样结果仅仅占了一排,而用有些软件可能会一下打开20个窗口。而在 下面的章节中,我们会看到更多能展示R相比传统软件更为灵活优越的例子。 2
2 基基基本本本原原原理理理与与与概概概念念念 如果R已经被安装在你的计算机中,它就能立即运行一些可执行的命令 了。R默认的命令提示符是‘>’,它表示正在等待输入命令。如在Windows系 统中打开Rgui.exe,就能直接运行下拉菜单中的一些操作命令(如在线帮助, 打开文件. . . )。到这里,有些人可能会急着想知道更多的语句命令。其实,在 学习这些内容前,了解掌握一些R的基本工作原理是非常有必要的。这正是本 章所要讲的主要内容。 本章首先简要描述R的工作原理。在第二节中,我将介绍一些基本的赋 值分配(“assign”) 的操作,如怎样产生对象(object),如何操作管理这些对象 等.最后简要介绍R中非常有用的在线帮助。 2.1 基基基本本本原原原理理理 因为R是一种编程语言,一些对编程不太熟悉的人可能会望而却步。这种 障碍其实是完全没有必要,首先,R是一种解释型语言,而不是编译语言,也 就意味着输入的命令能够直接被执行,而不需要像一些语言要首先构成一个 完整的程序形式(如C,Fortan, Pascal, . . . )。 第二,R的语法非常之简单和直观。例如,线性回归的命令lm(y ~ x) 表 示“以x为自变量,y为反应量来拟合一个线性模型”。合法的R函数总是带有 圆括号的形式,即使括号内没有内容(如,ls())。如果直接输入函数名而不输 入圆括号,R则会自动显示该函数的一些具体内容。在本手册中除在部分文字 已作出清楚的说明外,所有的函数后都接有圆括号以区别于对象(object)。 当R运行时,所有变量,数据,函数及结果都以对象(objects)的形式存 在计算机的活动内存中,并冠有相应的名字代号。我们可以通过用一些运算 符(如算术,逻辑,比较等)和一些函数(其本身也是对象)来对这些对象进行操 作。运算操作非常简单,其细节将留在下章讨论(p. 26). 关于R中的函数可用 下面的图例来形象的描述: arguments −→ options −→ function ↑ =⇒result default arguments 上图中的参量(argument)可能是一些对象(如数据,方程,算式. . . )。有 些参量在函数里被预设为缺省值,用户则可按需对其作个别的修改。所以运 行一个R函数可能不需要设定任何参量,原因是所有的参量都可以被默认为缺 3
省值,当然也有可能该函数本身就不含任何参量。由于这里主要是讲述R的工 作原理,对R函数的介绍将不再展开,在后面的章节中我们会看到关于构建及 使用各种函数的详细内容(p. 68)。 在R中进行的所有操作都是针对存储在活动内存中的对象的, 因此就不涉 及到任何临时文件夹的使用(Fig. 1)。对数据,结果或图表的输入与输出都 是通过在对计算机硬盘中的文件读写而实现。用户通过输入一些命令调用函 数,分析得出的结果可以被直接显示在屏幕上,也可以被存入某个对象或被 写入硬盘(如图片对象)。因为产生的结果本身就是一种对象,所以它们也能被 视为数据并能像一般数据那样被处理分析。数据文件即可从本地磁盘读取也 可通过网络传输从远程服务器端获得。 keyboard mouse commands - functions and operators ? “data” objects   - .../library/base/ /stast/ /graphics/ ... library of functions ) screen  XXXXXXXz 6 ? “results” objects PS JPEG . . . data files internet Active memory Hard disk 图 1: R工作原理示意图. 所 有 能 使 用 的R函 数 都 被 包 含 在 一 个 库(library) 中, 该 库 存 放 在 磁 盘 的R HOME/library 目录下(R HOME 是最初安装R的地址)。这个目录下含 有具有各种功能的包(packages ),各个包也是按照目录的方式组织起来的。 其中名为base的包可以算是R的核心,因为它内嵌了R语言中所有像数据读写 与操作这些最基本的函数。在上述目录中的每个包内,都有一个子目录R, 这个目录里又都含有一个与此包同名的文件(例如在包base中,有这样一个文 件R HOME/library/base/R/base)。该文件正是存放所有函数的地方。 R语言中最简单的命令莫过于通过输入一个对象的名字来显示其内容了。 例如,一个名为n的对象,其内容是数值10: > n [1] 10 方括号中的数字1表示从n的第一个元素开始显示。其实该命令的功能在 4
分享到:
收藏