R for Beginners Chinese Edition 2.0 Emmanuel Paradis Institut des Sciences de l'Evolution Universite Montpellier II F-34095 Montpellier cedex 05 France E-mail:paradisQisem.univ-montp2.fr Co-translated by:XF Wang,YH Xie,JT Li and GH Ding
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
目录 1导言 1 2基本原理与概念 3 2.1基本原理 ·。。 3 2.2对象的产生,排列及删除 5 2.3在线帮助 7 3R的数据操作 9 3.1对象....··. 9 32在文件中读写数据 11 3.3存储数据 14 3.4生成数据 15 3.4.1规则序列 15 3.4.2随机序列 18 3.5使用对象 19 3.5.1创建对象 19 3.5.2对象的类型转换 24 3.5.3运算符........ 26 3.5.4访问一个对象的数值:下标系统 27 3.5.5访问对象的名称 30 3.5.6数据编辑器····. 32 3.5.7数学运算和一些简单的函数 32 3.5.8矩阵计算 34 4R绘图 37 4.1管理绘图 37 4.1.1打开多个绘图设备 37 4.1.2图形的分割....... 38 4.2绘图函数 41 4.3低级绘图命令 42 4.4绘图参数 44 4.5一个实例 45 4.6grid和lattice包···················· 49
目录 1 导言 1 2 基本原理与概念 3 2.1 基本原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 对象的产生,排列及删除 . . . . . . . . . . . . . . . . . . . . . 5 2.3 在线帮助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 R的数据操作 9 3.1 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 在文件中读写数据 . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 存储数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 生成数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.1 规则序列 . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.2 随机序列 . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5 使用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5.1 创建对象 . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5.2 对象的类型转换 . . . . . . . . . . . . . . . . . . . . . . 24 3.5.3 运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.4 访问一个对象的数值:下标系统 . . . . . . . . . . . . . 27 3.5.5 访问对象的名称 . . . . . . . . . . . . . . . . . . . . . . 30 3.5.6 数据编辑器 . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.5.7 数学运算和一些简单的函数 . . . . . . . . . . . . . . . . 32 3.5.8 矩阵计算 . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4 R绘图 37 4.1 管理绘图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.1 打开多个绘图设备 . . . . . . . . . . . . . . . . . . . . . 37 4.1.2 图形的分割 . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2 绘图函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3 低级绘图命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.4 绘图参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.5 一个实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.6 grid 和lattice 包 . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5R的统计分析 56 51关于方差分析的一个简单例子......·.. 56 5.2公式.. 58 5.3泛型函数 59 5.4包...... 62 6R编程实践 65 6.1循环和向量化 65 67 6.3编写你自己的函数 68 7R相关的文献 72
5 R的统计分析 56 5.1 关于方差分析的一个简单例子 . . . . . . . . . . . . . . . . . . . 56 5.2 公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3 泛型函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.4 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6 R编程实践 65 6.1 循环和向量化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2 用R写程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.3 编写你自己的函数 . . . . . . . . . . . . . . . . . . . . . . . . . 68 7 R 相关的文献 72
导言 该手册是关于R的一个入门教材.由于主要针对初学者,我将重点放在了 对R的工作原理的解释上。R涉及广泛,因此对于初学者来讲,了解和掌握一 些基本概念及原理是很有必要的。在打下扎实的基础后,进行更深入的学习 将会变得轻松许多。本着深入浅出的宗旨,本手册将大量配合图表等形式, 尽可能使用通俗的语言,使读者容易理解而并不失细节。 R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka 和Robert Gentlemanl共同创立。R语言可以看作是由AT&T贝尔实验室所 创的$语言发展出的一种方言1。因此,R即是一种软件也可以说是一种语 言。S语言现在主要内含在由Insightful公司经营的S-PLUS软件中。R和S在 设计理念上存在有着许多不同:关于这方面的详细内容大家可以参考haka& Gentleman(1996)或R-FAQ3,该文档同时随R一起发布。 R是在GNU协议General Public Licence4下免费发行的,它的开发及维护 现在则由R开发核心小组R Development Core Team.具体负责。 R的安装文件有多种形式,有在Uniⅸ或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”里面,所以常常在分析执行结束后并不显示任何结 Thaka 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/ For example:http://stat.cmu.edu/S/
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”里面,所以常常在分析执行结束后并不显示任何结 1 Ihaka 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
果。使用者可能会对此感到困惑,其实这样的特点是非常有用的,因为我们 可以选择的从结果中只抽出我们感兴趣的部分。例如,我们要运行20个回归 分析而只想比较其回归系数,在R中就可以选择只显示所有分析得出的回归系 数,这样结果仅仅占了一排,而用有些软件可能会一下打开20个窗口。而在 下面的章节中,我们会看到更多能展示R相比传统软件更为灵活优越的例子。 2
2 基本原理与概念 如果R已经被安装在你的计算机中,它就能立即运行一些可执行的命令 了。R默认的命令提示符是>',它表示正在等待输入命令。如在Windows系 统中打开Rgui.exe,就能直接运行下拉菜单中的一些操作命令(如在线帮助, 打开文件..)。到这里,有些人可能会急着想知道更多的语句命令。其实,在 学习这些内容前,了解掌握一些R的基本工作原理是非常有必要的。这正是本 章所要讲的主要内容。 本章首先简要描述R的工作原理。在第二节中,我将介绍一些基本的赋 值分配(“assign”)的操作,如怎样产生对象(object),如何操作管理这些对象 等最后简要介绍R中非常有用的在线帮助。 2.1基本原理 因为R是一种编程语言,一些对编程不太熟悉的人可能会望而却步。这种 障碍其实是完全没有必要,首先,R是一种解释型语言,而不是编译语言,也 就意味着输入的命令能够直接被执行,而不需要像一些语言要首先构成一个 完整的程序形式(如C,Fortan,Pascal,..)。 第二,R的语法非常之简单和直观。例如,线性回归的命令1m(y~x)表 示“以x为自变量,y为反应量来拟合一个线性模型”。合法的R函数总是带有 圆括号的形式,即使括号内没有内容(如,1s())。如果直接输入函数名而不输 入圆括号,R则会自动显示该函数的一些具体内容。在本手册中除在部分文字 己作出清楚的说明外,所有的函数后都接有圆括号以区别于对象(object)。 当R运行时,所有变量,数据,函数及结果都以对象(objects)的形式存 在计算机的活动内存中,并冠有相应的名字代号。我们可以通过用一些运算 符(如算术,逻辑,比较等)和一些函数(其本身也是对象)来对这些对象进行操 作。运算操作非常简单,其细节将留在下章讨论(p.26).关于R中的函数可用 下面的图例来形象的描述: arguments function ↑ →result options default arguments 上图中的参量(argument)可能是一些对象(如数据,方程,算式..)。有 些参量在函数里被预设为缺省值,用户则可按需对其作个别的修改。所以运 行一个R函数可能不需要设定任何参量,原因是所有的参量都可以被默认为缺 3
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 ↑ default arguments =⇒result 上图中的参量(argument)可能是一些对象(如数据,方程,算式. . . )。有 些参量在函数里被预设为缺省值,用户则可按需对其作个别的修改。所以运 行一个R函数可能不需要设定任何参量,原因是所有的参量都可以被默认为缺 3
省值,当然也有可能该函数本身就不含任何参量。由于这里主要是讲述R的工 作原理,对R函数的介绍将不再展开,在后面的章节中我们会看到关于构建及 使用各种函数的详细内容(p.68)。 在R中进行的所有操作都是针对存储在活动内存中的对象的,因此就不涉 及到任何临时文件夹的使用(Fg.1)。对数据,结果或图表的输入与输出都 是通过在对计算机硬盘中的文件读写而实现。用户通过输入一些命令调用函 数,分析得出的结果可以被直接显示在屏幕上,也可以被存入某个对象或被 写入硬盘(如图片对象)。因为产生的结果本身就是一种对象,所以它们也能被 视为数据并能像一般数据那样被处理分析。数据文件即可从本地磁盘读取也 可通过网络传输从远程服务器端获得。 ../1ibrary/base/ keyboard commands /stast/ library of functions and operators /graphics/ mouse 44 functions data data”objects files internet screen “results”objects Active memory Hard disk 图1:R工作原理示意图 所有能使用的R函数都被包含在一个库(library)中,该库存放在磁盘 的RHOME/library目录下(R.HOME是最初安装R的地址)。这个目录下含 有具有各种功能的包(packages),各个包也是按照目录的方式组织起来的。 其中名为base的包可以算是R的核心,因为它内嵌了R语言中所有像数据读写 与操作这些最基本的函数。在上述目录中的每个包内,都有一个子目录R, 这个目录里又都含有一个与此包同名的文件(例如在包base中,有这样一个文 件RHOME/library/base/R/base)。该文件正是存放所有函数的地方。 R语言中最简单的命令莫过于通过输入一个对象的名字来显示其内容了。 例如,一个名为n的对象,其内容是数值10: >n [1]10 方括号中的数字1表示从n的第一个元素开始显示。其实该命令的功能在 4
省值,当然也有可能该函数本身就不含任何参量。由于这里主要是讲述R的工 作原理,对R函数的介绍将不再展开,在后面的章节中我们会看到关于构建及 使用各种函数的详细内容(p. 68)。 在R中进行的所有操作都是针对存储在活动内存中的对象的, 因此就不涉 及到任何临时文件夹的使用(Fig. 1)。对数据,结果或图表的输入与输出都 是通过在对计算机硬盘中的文件读写而实现。用户通过输入一些命令调用函 数,分析得出的结果可以被直接显示在屏幕上,也可以被存入某个对象或被 写入硬盘(如图片对象)。因为产生的结果本身就是一种对象,所以它们也能被 视为数据并能像一般数据那样被处理分析。数据文件即可从本地磁盘读取也 可通过网络传输从远程服务器端获得。 functions and operators ❄ “data” objects ❄ ✻ ✏✏ ✏✮✏ ❳❳❳❳❳❳❳③ “results” objects .../library/base/ /stast/ /graphics/ ... library of functions ✛ data files ✛ ✲ ✛ internet PS JPEG . . . keyboard mouse ✲ commands screen 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
这里于函数orint相似,输出结果与print(n)相同(但有些情况下,例如内嵌 在一个函数或循环中时,就必须得用print函数)。 对象的名字必须是以一个字母开头(A-Z或-z,中间可以包含字母,数 字(0-9),点()及下划线().因为R对对象的名字区分大小写,所以x和X就可 以代表两个完全不同的对象(在Windows:操作系统中也是如此)。 2.2对象的产生,排列及删除 一个对象可以通过赋值操作来产生,R语言中的赋值(“assign”)符号一般 是由一个尖括号与一个负号组成的箭头形标志。该符号可以是从左到右的方 向,也可以相反: >nn [1]15 >5->n n [1]5 >xXX [1]10 如果该对象已经存在,那么它以前的值将会自动被新值冲掉(这种修改只 会影响内存中的数据,操作结果暂时不会被保存到硬盘中)。在R中给对象赋 值有多种形式,可以是直接赋一个数值,也可以是一个算式或一个函数的结 果: >nn [1]12 n n [1]2.208807 运行rnorm(1)将产生一个服从平均数为0标准差为1的标准正态分布的随 机变量(p.18)。当然你也可以只是输入函数或表达式而不把它的结果赋给某 个对象,但如果这样在窗口中展示的结果将不会被保存到内存中: 5
这里于函数print 相似,输出结果与print(n) 相同(但有些情况下,例如内嵌 在一个函数或循环中时,就必须得用print函数)。 对象的名字必须是以一个字母开头(A–Z 或a–z), 中间可以包含字母,数 字(0–9),点(.)及下划线( ). 因为R对对象的名字区分大小写,所以x 和X就可 以代表两个完全不同的对象(在Windows操作系统中也是如此)。 2.2 对象的产生,排列及删除 一个对象可以通过赋值操作来产生,R语言中的赋值(“assign”) 符号一般 是由一个尖括号与一个负号组成的箭头形标志。该符号可以是从左到右的方 向,也可以相反: > n n [1] 15 > 5 -> n > n [1] 5 > x X x [1] 1 > X [1] 10 如果该对象已经存在,那么它以前的值将会自动被新值冲掉(这种修改只 会影响内存中的数据,操作结果暂时不会被保存到硬盘中)。在R中给对象赋 值有多种形式,可以是直接赋一个数值,也可以是一个算式或一个函数的结 果: > n n [1] 12 > n n [1] 2.208807 运行rnorm(1) 将产生一个服从平均数为0标准差为1的标准正态分布的随 机变量(p. 18)。当然你也可以只是输入函数或表达式而不把它的结果赋给某 个对象,但如果这样在窗口中展示的结果将不会被保存到内存中: 5
>(10+2)*5 [1]60 本文中,在不影响读者理解的情况下,一些赋值符号将会被省略。 函数1s的功能是显示所有在内存中的对象:只会列出对象名,如: >name1s() [1]"m" "n1""n2""name" 注意在R中应该用分号来隔开同一行中的不同命令语句。如果只要显示出 在名称中带有某个指定字符的对象,则通过设定选项pattern来实现(可简写 为pat)) >ls(pat "m") [1]"m" "name" 如果进一步限为显示在名称中以某个字母开头的对象,则可: 1s(pat ="m") [1]"m" 运行函数1s.str()将会展示内存中所有对象的详细信息: 1s.str() m:num 0.5 n1 num 10 n2 num 100 name chr "Carmen" 选项pattern在这里同样适用。在ls.str函数中另一个非常有用的选 项是max.level.,它将规定显示所有关对象信息的详细级别。缺省情况 下,1s.str将会列出关于对象的所有信息,包括数据框,矩阵,数据列 表的列数信息。因此展示结果可能会很长。但如果设定max.leve1=-1就可 以避免这种情况了: M ls.str(pat "M") M:‘data.frame': 1 obs.of 3 variables: n1:num 10 $n2:num100 $m num 0.5 1s.str(pat="M",max.level=-1) M:‘data.frame': 1 obs.of 3 variables: 要在内存中删除某个对象,可利用函数rm:运行rm(x)将会删除对象x,运 行rm(x,y)将会删除对象x和y,而运行rm(Iist=ls(O)则会删除内存中的所有对 象.在上面所讲的1s()函数中的一些选项同样也可以运用到rm中来,以选择 的删除一些对象,如:rm(1ist=ls(pat="m"))。 6
> (10 + 2) * 5 [1] 60 本文中,在不影响读者理解的情况下,一些赋值符号将会被省略。 函数ls的功能是显示所有在内存中的对象:只会列出对象名,如: > name ls() [1] "m" "n1" "n2" "name" 注意在R中应该用分号来隔开同一行中的不同命令语句。如果只要显示出 在名称中带有某个指定字符的对象,则通过设定选项pattern 来实现(可简写 为pat) ): > ls(pat = "m") [1] "m" "name" 如果进一步限为显示在名称中以某个字母开头的对象,则可: > ls(pat = "^m") [1] "m" 运行函数ls.str()将会展示内存中所有对象的详细信息: > ls.str() m : num 0.5 n1 : num 10 n2 : num 100 name : chr "Carmen" 选项pattern在这里同样适用。在ls.str函数中另一个非常有用的选 项是max.level, 它将规定显示所有关对象信息的详细级别。缺省情况 下,ls.str 将会列出关于对象的所有信息,包括数据框,矩阵,数据列 表的列数信息。因此展示结果可能会很长。但如果设定max.level =-1 就可 以避免这种情况了: > M ls.str(pat = "M") M : ‘data.frame’: 1 obs. of 3 variables: $ n1: num 10 $ n2: num 100 $ m : num 0.5 > ls.str(pat="M", max.level=-1) M : ‘data.frame’: 1 obs. of 3 variables: 要在内存中删除某个对象,可利用函数rm: 运行rm(x)将会删除对象x,运 行rm(x,y) 将会删除对象x和y,而运行rm(list=ls())则会删除内存中的所有对 象. 在上面所讲的ls() 函数中的一些选项同样也可以运用到rm中来,以选择 的删除一些对象,如: rm(list=ls(pat="^m"))。 6
2.3在线帮助 R中给予的在线帮助能提供关于如何使用函数的非常有用的信息。关于某 个特定函数的帮助能够直接被调出来,如运行: >?1m 会立即显示关于函数1m()(线性模型)的帮助页面。命令help(1m)和help("1m") 具有同样的效果。但在查询关于某特殊语法意义字符的帮助时必须用后一种 形式,如: >?* Error:syntax error >help("*") Arithmetic package:base R Documentation Arithmetic Operators .. 启动帮助将会打开一个页面(取决于操作系统),第一行一般会显示某函数 或操作命令的所属的包(package),然后是标题,标题下面是则是一些详细信 息。 Description:brief description. Usage:for a function,gives the name with all its arguments and the possible options (with the corresponding default values);for an operator gives the typical use. Arguments:for a function,details each of its arguments. Details:detailed description. Value:if applicable,the type of object returned by the function or the oper- ator. See Also:other help pages close or similar to the present one. Examples:some examples which can generally be executed without opening the help with the function example. 对初学者而言,参考帮助中Examples部分的信息是很有用的。而一般 应该仔细阅读Arguments中的一些说明也是非常有必要的。帮助中还包含了 其它一些说明部分,如Note,References或Author(s)等。 默认状态下,函数help只会在被载入内存中的包中搜索。选项try.all.package 在缺省值是FALSE,但如果把它设为TRUE,则可在所有包中进行搜索: 7
2.3 在线帮助 R中给予的在线帮助能提供关于如何使用函数的非常有用的信息。关于某 个特定函数的帮助能够直接被调出来,如运行: > ?lm 会立即显示关于函数lm()(线性模型)的帮助页面。命令help(lm) 和help("lm") 具有同样的效果。但在查询关于某特殊语法意义字符的帮助时必须用后一种 形式,如: > ?* Error: syntax error > help("*") Arithmetic package:base R Documentation Arithmetic Operators ... 启动帮助将会打开一个页面(取决于操作系统),第一行一般会显示某函数 或操作命令的所属的包(package),然后是标题,标题下面是则是一些详细信 息。 Description: brief description. Usage: for a function, gives the name with all its arguments and the possible options (with the corresponding default values); for an operator gives the typical use. Arguments: for a function, details each of its arguments. Details: detailed description. Value: if applicable, the type of object returned by the function or the operator. See Also: other help pages close or similar to the present one. Examples: some examples which can generally be executed without opening the help with the function example. 对初学者而言,参考帮助中Examples部分的信息是很有用的。而一般 应该仔细阅读Arguments中的一些说明也是非常有必要的。帮助中还包含了 其它一些说明部分,如Note, References或Author(s)等。 默认状态下,函数help只会在被载入内存中的包中搜索。选项try.all.package 在缺省值是FALSE, 但如果把它设为TRUE,则可在所有包中进行搜索: 7