数据分析与绘图的编程环境(R语言).pdf
《数据分析与绘图的编程环境(R语言).pdf》由会员分享,可在线阅读,更多相关《数据分析与绘图的编程环境(R语言).pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、R语言简介R语言笔记:数据分析与绘图的编程环境版本 1.7R Development Core TeamJune 10,2006Contents1绪 论与基 础11.1R语言环境.11.2相关的软件和文档.11.3R与统计.21.4R与视窗系统.21.5R的交互使用.21.6入门训练.31.7获取函数和功能的帮助信息.31.8R的命令、对大小写的敏感,等等.31.9对已输入命令的记忆和更改.41.10 命令文件的执行和输出的转向到文件.41.11 数据的保持与对象的清除.42简 单操作;数值 与向 量52.1向量与赋值.52.2向量运算.52.3产生规则的序列.62.4逻辑向量.72.5缺失值
2、.72.6字符向量.72.7索引向量(index vector);数据集子集的选择与修改.82.8对象的其他类型.93对 象,模 式和属 性103.1固有属性:模式和长度.103.2改变对象的长度.113.3属性的获取和设置.113.4对象的类别.114有 序因子 与无序 因子124.1一个特例.124.2函数 tapply()与ragged 数组.124.3有序因子.135数 组和矩 阵145.1数组.145.2数组的索引和数组的子块.145.3索引数组.15iCONTENTSii5.4函数 array().165.4.1向量,数组的混合运算,重复使用规则.165.5两个数组的外积.175.
3、6数组的广义转置.175.7专门的矩阵功能.185.7.1矩阵乘法.185.7.2线性方程和矩阵的逆.185.7.3特征值和特征向量.195.8奇异值分解与行列式.195.9最小二乘拟合及QR 分解.195.10 构建分区矩阵,cbind()和rbind().195.11 连接函数 c(),针对数组的应用.195.12 由因子生成频数表.206列 表和数 据帧216.1列表.216.2构建和修改列表.226.2.1连接列表.226.3数据帧.226.3.1创建数据帧.226.3.2attach()与detach().236.3.3使用数据帧.236.3.4挂接任意列表.246.3.5管理搜索路
4、径.247从 文件中 读取数 据257.1函数 read.table().257.2函数 scan().267.3内建数据集的存取.267.3.1从其他 R功能包中载入数据.277.4编辑数据.278概 率分布288.1R 作为一个统计表的集合.288.2检测数据集合的分布.298.3单样本和两样本检验.329语 句组、循环和 条件 操作359.1表达式语句组.359.2控制语句.359.2.1条件执行:if 语句.359.2.2重复执行:for 循环,repeat 和 while.3510 编 写自己 的函数3710.1 简单示例.3710.2 定义新的二元操作符.3810.3 指定的参数和
5、默认值.3810.4 参数.3910.5 函数内的赋值.3910.6 更多高级示例.39CONTENTSiii10.6.1区组设计的效率因子(E?ciencyfactors).3910.6.2删除打引数组中的所有名称.4010.6.3递归的数值积分.4110.7 范畴(scope).4110.8 定制环境.4310.9 类别,通用函数和对象定位.4411 R 的统 计模 型4511.1 定义统计模型;公式.4511.1.1对比(contrasts).4811.2 线性模型.4811.3 用于释放模型信息的通用函数.4811.4 方差分析与模型比较.4911.4.1方差分析表(ANOVAtabl
6、es).4911.5 更新拟合模型.5011.6 广义线性模型.5011.6.1族(families).5111.6.2函数 glm().5111.7 非线性最小二乘和最大似然模型.5311.7.1最小二乘.5311.7.2最大似然.5411.8 一些非标准的模型.5512 图 形过程5612.1 高级绘图命令.5612.1.1函数 plot().5612.1.2显示多元数据.5712.1.3显示图形.5812.1.4高级绘图函数的参数.5812.2 低级绘图命令.5912.2.1数学注释.6112.2.2Hershey 矢量字体.6112.3 图形的交互.6112.4 使用图形参数.6212
7、.4.1持续性变更(Permanentchanges):par()函数.6212.4.2临时性变更:图形函数的参数.6312.5 图形参数列表.6312.5.1图形元素.6312.5.2坐标轴和标记.6412.5.3图边缘(Figuremargins).6512.5.4多图环境.6512.6 设备驱动.6712.6.1文本文档的 PostScript 图表.6712.6.2多重图形设备.6712.7 动态图形.68Chapter1绪论与基础1.1R语言环境R是一套由数据操作、计算和图形展示功能整合而成的套件。包括:?有效的数据存储和处理功能,?一套完整的数组(特别是矩阵)计算操作符,?拥有完整
8、体系的数据分析工具,?为数据分析和显示提供的强大图形功能,?一套(源自 S语言)完善、简单、有效的编程语言(包括条件、循环、自定义函数、输入输出功能)。在这里使用”环境”(environment)是为了说明R的定位是一个完善、统一的系统,而非其他数据分析软件那样作为一个专门、不灵活的附属工具。R很适合被用于发展中的新方法所进行的交互式数据分析。由于R是一个动态的环境,所以新发布的版本并不总是与之前发布的版本完全兼容。某些用户欢迎这些变化因为新技术和新方法的所带来的好处;有些则会担心旧的代码不再可用。尽管R试图成为一种真正的编程语言,但是大家不要认为一个由R编写的程序可以长命百岁。1.2相关的软
9、件和文档R可以被当作 S语言(由 Rick Becker,JohnChambers 和AllanWilks在Bell 实验室开发)的实现工具,或者S-Plus系统的基本形态。S语言 的 发 展 变 化 可 以 参 考JohnChambers与 其 他 人 合 作 的 四 本 书。对R 来说,基本的参考书是The New S Language:A ProgrammingEnvironmentfor Data Analysisand Graphics(RichardA.Becker,John M.Chambers andAllanR.Wilks)。对于 1991 年发布的S(Sversion3)可
10、以参考StatisticalModels in S(edited by John M.Chambers and TrevorJ.Hastie)。更多的参考书目请查看本手册的相应部分。此外,S-Plus的相关文档都可以用于R,只是要注意R 与S执行工具之间的差别。1CHAPTER1.绪论与基础21.3R与统计在我们对R语言环境的介绍中并没有提到统计,不过很多人都把R 作为一个统计系统来使用。我们倾向于把它当作环境,使得经典和现代统计技术在其中得到应用。一部分已经被内建在基本的R 语言环境中,但是更多的是以包的形式提供的。由8个包是随着R 一同提供的(称作标准包),其它的可以通过CRAN的成员网站
11、获得(通过http:/cran.r-project.org)。通过 R 可以使用绝大多数的经典或者最新的统计方法,不过用户需要花一些功夫来找出这种方法。S(和 R)与其他主流的统计系统在本质上有一个很重要的不同。在S中,统计分析通常由一系列的步骤完成,同时将交互的结果存储在对象中。所以,尽管 SAS 和SPSS在一个回归或者判别分析中会给出丰富的输出结果,R只是给出一个最小的输出,而将结果保存在一个适当的对象中由R 函数进行后续查询。1.4R与视窗系统使用 R 最便捷的方式是在一个运行视窗系统的图形工作站上。这份指南就是为拥有这项便利的用户准备的。尽管我们绝大部分的内容都是来讲R 环境的一般应
12、用,我们还是会时不时的提到R 在X window系统下的应用。与操作系统的直接互动对多数用户来说都是必要的。在这份指南中我们主要讨论在 UNIX系统下的互动,所以Windows下的 R 用户需要做出一些小的调整。对工作站的定制是一项直接而有效但又单调乏味的过程,在这里我们并不会作更深入的讨论。如果您在这方面遇到了困难可以向你身边的专家寻求帮助。1.5R的交互使用R 程序在等待输入命令时会给出提示符,默认的提示符是,与UNIX的shell提示符是相同的。不过如果你愿意的话,我们可以轻松的更改R 的提示符。在这里我们先假定UNIX的shell提示符是$。在 UNIX下使用 R 可以按照下面的推荐步
13、骤来做:1.创建一个独立的子目录来存储解决这个问题所用的数据文件,将目录命名为 work.这个目录将作为你当前任务的工作目录.$mkdirwork$cd work2.启动 R 的程序$R3.使用 R 的各种命令4.退出 R q()此时您会被询问是否保存您在R 任务中的数据。你可以回答yes,no 或cancel(使用缩略字符也可以)分别对应退出前保存数据,不保存数据退出或回到R任务中。被存储的数据在之后的R 任务中可以继续使用。之后的 R 任务就更简单了。1.令 work成为工作目录,并启动R 程序。$cd work$RCHAPTER1.绪论与基础32.使用 R,在任务结束时用q()来中止。在
14、Windows下使用 R 的步骤与上面基本相同。创建一个文件夹作为工作目录,并将其设定R 快捷方式的在”起始位置”中。然后双击图标启动R。1.6入门训练我们非常推荐读者们在继续进行之前通过一个示例来获取在计算机上使用R 的感觉。这个示例由示例训练给出。1.7获取函数和功能的帮助信息和UNIX中的 man 命令一样,R 拥有一个内建的帮助功能。对于任意一个指定的函数,例如solve,命令是help(solve)或者?solve对于由特殊字符指定的功能,这些参数必须用单引号或双引号括起来,使之成为一个“字符串”:同时对于某些含有if,for或者 function的合成词也要这样处理。help()不
15、论是单引号还是双引号都可以包含在另一个中,例如字符串:”It sim-portant”。我们的惯例是使用双引号。一般情况下帮助文档的HTML格式都是被安装了的,可以通过运行下面的命令 help.start()启动一个 Web 浏览器(UNIX下是 netscape浏览器)来浏览包含超级链接的帮助页面。在UNIX下,后续的帮助请求回被发送到HTML为基础的帮助系统中。页面中Search EngineandKeywords连接可以通过所包含的列表对各种函数进行非常有效的查询。这是你熟悉并且理解R 提供的各种功能的好方法。命令 help.search允许我们用多种方式来搜索帮助信息:细节和例子可以用
16、?help.search来查询。与某个主题相关的例子通常可以用下面的命令得到 example(topic)Windows版本的 R 还有另外可选的帮助系统,详细资料请用?help来查询。1.8R的命令、对大小写的敏感,等等从技术角度来讲,R是一种表达式语言,它的语法是非常简单的。和大多数UNIX为基础的软件包一样,R 对大小写是敏感的,也就是说A 和 a是不同的代号并且将代表不同的变量。R语言名称中可用的字符集由当前的操作系统决定(即由 locale决定)。正常情况下所有的字母和数字都是可用的(在某些国家包括重音字符),还包括句点.*note1*,但是要注意名称不能以数字开始。基本的命令由表达
17、式或者赋值语句组成。如果一个表达式被作为一条命令给出,它将被求值、打印而表达式的值并不被保存。一个赋值语句同样对表达式求值之后把表达式的值传给一个变量,不过并不会自动的被打印出来。命令由分号(;)来分隔,或者另起新行。基本命令可以由花括号(和)合并为一组复合表达式。注释几乎可以被放在任何地方,只要是以井号(#)开始,到行末结CHAPTER1.绪论与基础4束的都是注释。如果一个命令在行莫仍没有结束,R将会给出一个不同的提示符,默认的是+在第二行和后续行R 将继续读入,直到命令从语法角度讲已经输入完成了。这个提示符也可以由用户更改。一般情况忽略继续输入提示符就行。1.9对已输入命令的记忆和更改在许
18、多版本的UNIX和Windows下,R 提供了对已输入命令记忆和再次执行的一种机制。使用垂直方向箭头的按键可以在命令记录中向前或向后滚动。当一个命令用这种方法定位之后,你就可以使用左右键改变光标的位置,对命令行进行编辑(用删除或者按其他按键进行添加)。相信的资料在稍后提供:参见命令行编辑器。记忆和编辑功能在UNIX下是高度可定制的。你可以在 readline库的手册中找到具体的方法。作为选择,Emacs 的文本编辑器提供了一种更为一般的支持机制(通过 ESS,EmacsSpeaksStatistics)来为R 下面的交互工作服务。参见R 和Emacs。1.10命令文件的执行和输出的转向到文件如
19、果命令存储于一个外部文件中,比如工作目录work中的 commands.R,他们可以随时在R的任务中被执行 source(commands.R)在Windows中Source也可以由 File菜单执行。函数sink,sink(record.lis)将把所有后续的输出由终端转向一个外部文件,record.lis。命令 sink()将把信息重新恢复到终端上。1.11数据的保持与对象的清除R 所创建、操作的实体是对象。对象可以是变量、数组、字符串、函数以及由这些元素组成的其它结构。在一个R 的任务过程中,对象根据名称被创建和存储(我们将在下个训练中讨论这个过程)。下面的命令 objects()(作为
20、选择,ls()可以)被用来显示目前存储在R 中的对象的名字。而当前存储的所有对象的组合被称为workspace。清除对象可以使用rm 命令:rm(x,y,z,ink,junk,temp,foo,bar)所有在一个R任务中被创建的对象都可以在文件中被永久保存,并在其它的 R 任务中被使用。在每个R 任务结束时用户都有机会保存当前有效的所有对象。如果用户这样做的话,对象将被写入当前目录一个名为.RData*Note3*。当 R 被再次启动时R 会从这个文件中再载入workspace。同时相关的命令记录也被载入。推荐大家在用R 进行不同的分析时分别使用不同的工作目录。在分析过程中创建名为 x或y 的
21、对象是很普通的。在一个单独的分析中它们的含义也会很清晰,但是如果几个不同的分析在同一个工作目录中被处理的话你将会发现分辨它们的含义是件很痛苦的事情。Chapter2简单操作;数值与向量2.1向量与赋值R对命名了的数据结构进行操作。最简单的数据结构是数字向量,数字向量是由一组有序数字组成的单个实体。下面的R命令将创建一个名为x,包含 5个数字(10.4,5.6,3.1,6.4 和21.7)的向量:x assign(x,c(10.4,5.6,3.1,6.4,21.7)通常使用的操作符?-可以被当作函数assign()的简写。赋值同样可以在另一个方向进行,改变赋值操作符的方向就可以了。所以同样的复制
22、操作还可以被写成 c(10.4,5.6,3.1,6.4,21.7)-x如果一个表达式被当作一个完整的命令,它的值将被打印到终端但不被储存。所以如果我们使用这个命令 1/x五个值的倒数将被打印到终端上(还有 x的值)。下面的这个赋值操作 y v-2*x+y+15CHAPTER2.简单操作;数值与向量6产生一个长度为11的新向量 v,逐个元素的进行运算,其中2*x 被重复 2.2次,y被重复 1次,常数1被重复 11次。逐个元素进行运算的操作符包括+,-,*,/,此外所有普通的运算函数都能够被使用。log,exp,sin,cos,tan,sqrt等等,而且意义并没有什么变化。max和min的作用是
23、选出所给向量中最大的或最小的元素。range函数的值是一个长度为2的向量,即 c(min(x),max(x)。length(x)返回了向量x中元素的个数,也就是x的长度。sum(x)给出了 x中所有元素的总和,prod(x)给出 x中所有元素的乘积。两个统计函数是mean(x)和var(x),分别计算样本均值和样本方差,这两个函数分别相当于sum(x)/length(x),sum(x-mean(x)2)/(length(x)-1)。如果 var()的参数是一个n*p 的矩阵,那么函数的值是一个p*p 的样本协方差矩阵,认为每行是一个p变量的样本向量。sort(x)返回一个与 x具有相同长度的向
24、量,其中的元素按招升序排列。还有其他更灵活的排序功能(参见 order()和sort.list()。需要注意不论参数中有几个向量,max和 min给出的是所有向量的一个最大值或最小值。而平行的最大最小函数 pmax和pmin 将返回一个与最长的向量长度相等的向量,向量中的元素由参数中所有向量在相应位置的最大值(最小值)组成。绝大多数用户并不会关心一个数字向量中的数字究竟是整数、实数还是复数。在计算机中运算是按照双精度的实数或复数进行的。如果要使用复数,需要直接给出一个复数部分。因此sqrt(-17)将会返回 NaN(无效数值)和一个警告,而sqrt(-17+0i)将按照复数进行运算。2.3产生
25、规则的序列R拥有很多产生常用数列的方法。例如1:30就是向量 c(1,2,.,29,30)。在一个表达式中冒号(:)具有最高的优先级(即最先进行运算),所以,比如2*1:15 就是向量 c(2,4,.,28,30)。令 n seq(-5,5,by=.2)-s3在变量 s3中产生向量c(-5.0,-4.8,-4.6,.,4.6,4.8,5.0)。相似的 s4 s5 temp 13令temp 成为一个与 x 长度相同,相应位置根据是否与条件相符而由TRUE 或FALSE组成的向量。逻辑操作符包括,=,完全相等=和不等于!=。此外,如果 c1和 c2时逻辑表达式,那么c1&c2 是它们的交集(”an
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 分析 绘图 编程 环境 语言
限制150内