收藏 分享(赏)

R语言常见命令.doc

上传人:tangtianxu1 文档编号:2962943 上传时间:2018-09-30 格式:DOC 页数:31 大小:401KB
下载 相关 举报
R语言常见命令.doc_第1页
第1页 / 共31页
R语言常见命令.doc_第2页
第2页 / 共31页
R语言常见命令.doc_第3页
第3页 / 共31页
R语言常见命令.doc_第4页
第4页 / 共31页
R语言常见命令.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、1. 获取帮助 help.start() 开启帮助文档help(solve) 显示某命令的帮助信息,或者?solve对于由特殊字符指定的功能,这些参数必须用单引号或双引号括起来,使之成为一个“字符串”, 如 help(“)与某个主题相关的例子通常可以用下面的命令得到 example(topic)2. 命令简介R 对大小写是敏感的;名称不能以数字开始;基本的命令由表达式或者赋值语句组成。如果一个表达式被作为一条命令给出,它将被求值、打印而表达式的值并不被保存。一个赋值语句同样对表达式求值之后把表达式的值传给一个变量,不过并不会自动的被打印出来;命令由分号(;) 来分隔,或者另起新行;基本命令可以

2、由花括号(f 和 g)合并为一组复合表达式;注释几乎可以被放在任何地方,只要是以井号( # )开始,到行末结束;如果一个命令在行莫仍没有结束,R 将会给出一个不同的提示符,默认的是 +。3. 命令文件的执行和输出转向到文件如果命令存储于一个外部文件中,比如工作目录 work 中的 commands.R,他们可以随时在 R 的任务中被执行 source(“commands.R“)在 Windows 中 Source 也可以由 File 菜单执行。函数 sink, sink(“record.lis“)将把所有后续的输出由终端转向一个外部文件,record.lis。命令 sink() 将把信息重新恢

3、复到终端上。4. 数据的保持与对象的清除R 所创建、操作的实体是对象。对象可以是变量、数组、字符串、函数以及由这些元素组成的其它结构; objects() 用来显示目前存储在 R 中的对象的名字。而当前存储的所有对象的组合被称为 workspace;清除对象可以使用 rm 命令: rm(x, y, z, ink, junk, temp, foo, bar)所有在一个 R 任务中被创建的对象都可以在文件中被永久保存,并在其它的 R 任务中被使用。在每个 R 任务结束时用户都有机会保存当前有效的所有对象。如果用户这样做的话,对象将被写入当前目录一个名为.RData。当 R 被再次启动时 R 会从这

4、个文件中再载入workspace。同时相关的命令记录也被载入。所以,推荐大家在用 R 进行不同的分析时分别使用不同的工作目录。5. 基本数据结构数值型(numeric) 1,1.2,3.1415926复数型(complex) 1+2i字符型(character) A/ “hello world!”逻辑型(logical) TRUE / FALSE6. 基本数据对象 向量(vector), 见下节矩阵(matrix): 更一般的说数组是向量在多维情况下的一般形式。事实上它们是可以被两个或更多的指标索引的向量,并且以特定的方式被打印出来。因子(factors) 提供了一种处理分类数据的更简介的方式

5、。列表(list): 是向量的一种一般形式,并不需要保证其中的元素都是相同的类型,而且其中的元素经常是向量和列表本身。数据框(data frame):是一种与矩阵相似的结构,其中的列可以是不同的数据类型。可以把数据框看作一种数据“矩阵“,它的每行是一个观测单位,而且(可能)同时包含数值型和分类的变量。函数( function):能够在 R 的 workspace 中存储的对象。我们可以通过函数来扩展 R 的功能。二 简单操作,数值与向量2.1 向量与赋值R 对命名了的数据结构进行操作。最简单的数据结构是数字向量;如, x assign(“x“, c(10.4, 5.6, 3.1, 6.4, 2

6、1.7) 也可以写成: c(10.4, 5.6, 3.1, 6.4, 21.7) - x如果一个表达式被当作一个完整的命令,它的值将被打印到终端但不被储存。单独输入 x 则会将值打印出来。也可以打印倒数: 1/x y v s5 temp 13逻辑操作符包括, =,完全相等=和不等于!=,与或非分别为 在打印时用双引号 (有时不用引号)。R 使用与 C 语言风格基本相同的转义符, 所以输入打印的也是, 输入“ 打印引号“, n: 换行, t: tab, b: 回格。字符向量可以通过函数 c()连接 ;paste()可以接受任意个参数,并从它们中逐个取出字符并连成字符串,形成的字符串的个数与参数中

7、最长字符串的长度相同。如果参数中包含数字的话,数字将被强制转化为字符串。在默认情况下,参数中的各字符串是被一个空格分隔的,不过通过参数 sep=string 用户可以把它更改为其他字符串,包括空字符串。例如: labs y (x+1)(!is.na(x) text(x, y, names)图形参数 type=“n“阻止了点的生成,但是建立了坐标轴,由函数 text()提供字符向量names 所指定的特定字符。abline(a, b) abline(h=y) abline(v=x) abline(lm.obj)在当前图上添加一条斜率为 b,截距为 a 的直线。h=y 在图形指定的高度上绘制一条贯

8、穿图形的水平线,同样的,v=x 在 x 轴的指定位置绘制一条贯穿的 垂线。而 lm.obj 是一个包含 coefficients 组件的列表,该组件的长度为 2,分别当作截距和斜率。polygon(x, y, . . . )绘制一个多边形,其顶点由(x,y)指定。同时还(可选的)可以加上阴影线,如果图形设备允许的话还可以将多边形填充。legend(x, y, legend, . . . )这当前图形的指定位置添加图例。绘制的字符,线条类型,颜色等等由字符向量 legend 指定。除此之外至少还要给出一个参数 v,与绘图单元的相应值,分别有:legend( , fill=v)填充方框的颜色leg

9、end( , col=v)绘制点线的颜色legend( , lty=v)线条类型legend( , lwd=v)线条宽度legend( , pch=v)绘制字符(字符向量 )title(main,sub)在当前图形的顶部用大字题添加一个标题 main,在底部用较小的字体添加子标题 sub。axis(side, . . . )在当前图形的指定边上添加坐标,在哪个边上由第一个参数指定(1 到 4,从底部按照顺时针顺序)。其他参数控制坐标的位置|在图形内或图形外,以及标记的位置和标签。适合在调用参数为 axes=FALSE 的函数 plot()后添加定制的坐标轴。低级绘图函数通常都需要一些位置信息(

10、例如,x,y 坐标)来决定在哪里添加新的元素。坐标以用户坐标(user coordinates)的形式给出,这个坐标系是根据所提供的数据由之前的高级绘图语句定义的。需要 x,y 参数的地方还可以选用一个单独的参数,即一个由名为 x,y的元素组成的列表。相似的,一个两列的矩阵也可以。像 locator()(后面会提到)这样的函数也可以按照这种方式交互的指定图形中的位置。添加数学注释某些情况下需要在图形中加入数学符号或公式。在 R 中可以通过在 text, mtext,axis 或 title中指定一个表达式来实现。例如,下面的代码绘制了二项概率函数的公式: text(x, y, expressi

11、on_r(paste(bgroup(“(“, atop(n, x), “)“),px, qn-x)更多的信息,包括其特性的一个完整列表可以在 R 中通过下面的命令得到: help(plotmath) example(plotmath)添加 Hershey 矢量字体 help(Hershey) example(Hershey)12.3 图形的交互R 提供了函数,使用户可以通过鼠标从图形中释放信息或添加信息。locator(n,type)等待用户使用鼠标左键在当前图形上选择位置。直到 n(默认是 512)个点都选完或者点击了鼠标另一个键(Unix,Windows),在 Mac 下用鼠标点 击图形窗

12、口外的部分也可以结束。参数 type 的效果和在高级绘图函数中使用时是一样的,即在选择的点绘制指定的图形。默认情况是不绘制图形。函数 locator()将所选点的坐标返回到一个列表中,列表包含 x,y 两个组件。通常 locator()在调用的时候并不带参数。这个功能在为图例或标签这样的图形元素选择位置时比较有用,尤其是这些位置不好通过计算得到的时候。举个例子,如果要在一个野点附近添加一些信息,可以使用下面的命令 text(locator(1), “Outlier“, adj=0)identify(x, y, labels)允许用户在 x,y(使用鼠标左键)定义的点附近绘制相应的 labels

13、 的组件(如果没有给出labels 就给出该点的序号),突显该点。当鼠标的另一个键被点击时(Unix,Windows)返回被选点的序号,在 Mac 下通过点击图形窗口外来实现这个效果。有时我们更想确定图形中的点,而非它们的位置。例如,我们可能希望从图示中选出某些感兴趣的观测点,然后进行某些操作。通过两个数值向量 x,y 给定一系列坐标(x; y),我们可以使用 identify()函数: plot(x,y) identify(x,y)函数 identify()本身不绘图,但是允许用户移动鼠标,在某点附近点击左键。离鼠标指针最近的点将被突显,并标出其序号(也就是它在向量 x/y 中的 位置)。或

14、者使用 identify()的 labels 参数,把某些信息(例如案例名称)作为突显的标志;或者通过 plot=FALSE 参数取消所有突显标 志。当选点的过程结束后,identify()返回所选点的序号;用户可以使用这些序号从 x 和 y 中释放所选的点。12.4 使用图形参数通过图形参数可以定制图形显示的几乎所有方面。R 包含大量的图形参数,可以控制的包括线条类型,颜色,图标排列,文本对齐等等。1 持续性变更 (Permanent changes): par()函数通过 par()函数设定图形参数的值会持续性的更改参数的值,也就是说这之后(在当前设备上)所有对图形函数的调用都受到新值的影

15、响。函数 par()用于存取和修改当前图形设备的图形参数列表。par()不带任何参数,返回当前设备所有图形参数和它们的值的列表。par(c(“col“,“lty“)参数为一个字符向量,仅返回参数中指定的图形参数(也是作为一个列表)。par(col=4, lty=2)带指定参数(或一个列表型参数),设定指定图形参数的值,并将参数的原始值作为一个列表返回。所以如果想设定参数绘制一些图形后再恢复成原来的设定,可以这么做: oldpar par(oldpar)2 临时性变更:图形函数的参数图形参数也可以作为(几乎)所有图形函数的命名参数。这种方式的效果和用于 par()函数的效果是一样的,只不过这种改

16、变只在函数调用的区间内有效。比如: plot(x, y, pch=“+“)生成一个以加号作为绘图符号的散点图,而不改变后续图形的默认的绘图符号。3 图形参数列表A 图形元素R 图表由点、线、文本和多边形(填充区)组成。下面的图形参数控制了图形元素的绘制:pch=“+“ 用来绘点的字符。这个默认值随不同的图形驱动是不同的,不过通常都是。除非使用“.“作为绘图字符,否则绘制的点都会比适当的位置高一点或者低一点,而不是恰好在指定位置。pch=4 当给定一个 0 到 18 的整数时,会生成一个特殊的绘图符号。通过下面的命令可以看这些符号都有什么。 legend(locator(1), as.chara

17、cter(0:18), pch=0:18)lty=2 线条类型。并不是所有图形设备都支持多种线条类型(在那些支持的设备上也不全一样),不过线条类型 1 始终是实线,2 及以上的是点、划线或者它们的组合。lwd=2 线条宽度。所需的线条宽度,是“标准“线条宽度的倍数。对 line()等函数绘制的线条和坐标轴都有效果。col=2 点、线、文本、填充区和图像使用的颜色。每种图形元素都有其可用的颜色列表,这个参数的值就是颜色在列表中的序号。显然,这个参数值对有限的一类设备有效。font=2 指定文本所使用字体的一个整数。如果可能的话,设备驱动会把 1 对应普通文本,2 对应粗体,3 对应斜体,4 对应

18、粗斜体。font.axis font.lab font.main font.sub 这几个参数分别指定坐标轴注释,x,y 轴的标签,主、副标题所用的字体。adj=-0.1 文本对齐和绘图位置有关。0 代表左对齐,1 代表右对齐,0.5 代表水平的中间位置。当前的值使会图位置到左端距离的比例,所以-0.1 在文本和绘图位置之间留 10%的空白。cex=1.5 字符缩放。这个值是所需文本字符(包括绘图字符)的大小,与默认文本大小相关。B 坐标轴和标记很多 R 的高级图形都有坐标轴,你可以使用低级图形函数 axis()自己创建坐标轴。坐标轴包含三个主要组件:轴线 axis line(线条类型由参数

19、lty 控制),标记 tick mark(沿着轴线划分单元),标号 tick label(用来标出这些单元)。这些组件可以用下面这些参数定制。lab=c(5,7,12)前两个数字分别是 x 和 y 轴上所要划分的区间数。第三个数字是坐标轴标签的长度,用字符数来衡量(包括小数点)。参数的值如果选得太小可能导致所有标号都聚在一起。las=1 坐标轴标签的方向。0 代表总是和坐标轴平行,1 代表总是水平的,2 代表总是垂直于坐标轴。mgp=c(3,1,0)坐标轴组件的位置。第一个组件是坐标轴标签到坐标轴的距离,单位是文本行(text lines)。第二个组件是到标号的距离,最后一个是轴的巍直到轴线的

20、距离(一般都是 0)。正数代表绘图区域外,负数代表区域内。tck=0.01 标号的长度,绘图区域大小的一个分数作单位。当 tck 比较小时(小于 0.5),就强制 x 和 y 轴上的标记为相同大小。tck=1 就是生成网格线。取负值时标记画向绘图区域外。内部标记可以使用 tck=0.01 和 mgp=c(1,-1.5,0)。xaxs=“s“ yaxs=“d“ 分别是 x、y 轴的类型。如果是 s(standard)或 e(extended)类型,那最大和最小的标记都始终在数据区域之外。如果有某个点离边界非常 近,那么扩展型(extended)的轴会稍稍扩展一下。这种类型的轴有时会在边界附近留出

21、大片空白。而i(internal)或 r(默认值) 类型的轴, 标记始终在数据区域内,不过 r 类型会在边界留出少量空白。如果这个参数设为 d,就锁定当前轴,对之后绘制的所有图形都用这个轴(直到参数被重新设定为其他的那几个值)。这个参数适用于生成一系列固定尺度的图。C 图边缘(Figure margins)在 R 中一个单独图形,图( figure),包含一个绘图区(plot region),以及环绕着这个区域的边缘(其中可能含有坐标轴标签、标题等等),(通常)这两部分以轴为边界。一个典型的图是控制图的样式的图形参数包括:mai=c(1,0.5,0.5,0)分别是底部,左侧,顶部,右侧的宽度,

22、单位是英寸。mar=c(4,2,2,1)与 mai 相似,只是单位是文本行(text lines)。由于更改一个就会改变另一个的值,所以在这个意义上,mai 和 mar 是等价的。这个参数的默认值通常都太大了;右侧边缘很少用到,如果没标题,顶部边缘也 不需要,左侧和底部的边缘应当足够大,以容纳坐标轴和标号。此外,默认值并没有考虑到设备表面的大小:比如,使用 postscript()驱 动,height=4 参数时,除非用 mar,mai 另外设定,否则图的边缘就要占上大约 50%。使用多图环境时(后面会提到)。边缘会减少一半,不过这在 多图共用一页的时候可能还不够。D 多图环境R 允许在一页上

23、创建一个 nm 的图的阵列。每个图由自己的边缘,图的阵列还有一个可选的外部边缘,如下图所示。与多图环境相关的图形参数有:mfcol=c(3, 2) mfrow=c(2, 4)设定多图阵列的大小。第一个值是行数,第二个值是列数。这两个参数唯一的区别是mfcol 把图按列排入,mfrow 把图按行排入。上图所示的版式可用 mfrow=c(3,2)创建;上图显示的是绘制四幅图后的情况。mfg=c(2, 2, 3, 2)当前图在多图环境下的位置。前两个数字是当前图的行、列数;后两个是其在多图阵列中的行列数。这个参数用来在多图阵列中跳转。你甚至可以在后两个数中使用和真值(true value)不同的值,

24、在同一页上得到大小不同的图。fig=c(4, 9, 1, 4)/10当前图在页面的位置,取值分别是左下角到左边界,右边界,下、上边界的距离与对应边的百分比数。给出的例子是一个页面右下角的图。这个参数可以设定图在页面的绝对位置。oma=c(2, 0, 3, 0) omi=(0, 0, 0.8, 0) 外部边缘的大小。与 mar 和 mai 相似,第一个用文本行作单位,第二个以英寸作单位,从下方开始按照顺时针顺序指定。外部边缘对页标题这类东西很有用。文本可以通过带 outer=TRUE 参数的 mtext()函数加入外部边缘。默认情况下是没有外部边缘的因此必须通过 oma 或 omi 指定。函数

25、split.screen()和 layout()可以对多个图形作更复杂的排列。12.6 设备驱动R 几乎可以在任何一种类型的显示器和打印设备上生成(不同质量的)图形。不过,在这之前,需要告诉 R 要处理的是哪一种设备。这通过启动一个设备驱动来完成。设备驱动通过调用设备驱动函数来启动。某些常用的设备驱动有:X11()Unix 使用 X11 视窗系统windows()Windows 使用 Windows 视窗系统 postscript()在 PostScript 打印机上打印或者创建 PostScript 图形文件pictex()生成一个 LATEX 文件当一个设备使用完之后,可以通过下面的命令终

26、止设备驱动 dev.off()这个命令可以确保设备已经结束;例如,在某些硬拷贝的设备中,这个命令可以保证每页都已经完成,并且都被传送到打印机了。PostScript 文档通过给 postscript()函数带上 file 参数,我们可以把图形以 PostScript 格式存储到文件中。如果没有给出 horizontal=FALSE 参数,图形是横向的,你可以通过 width 和 height 参数控制图形的大小(图形会自动适应)。例如,命令 postscript(“file.ps“, horizontal=FALSE, height=5, pointsize=10)为一个五英寸的图生成一个包含 PostScript 代码的文件,可以放在文当中。如果命令中的指定的文件名已经存在,将会被覆盖。多重图形设备每个对设备驱动的新调用都会打开一个新的图形设备,在设备列表中加入新的一项。这个设备就成为当前设备,图形输出就传送到这个设备。dev.list() 返回所有活动中设备的序号和名称。在列表位置 1 的设备始终是空设备(null device),这个设备不接收任何图形命令。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报