r语言-数据操作课件

上传人:我*** 文档编号:145249744 上传时间:2020-09-18 格式:PPT 页数:80 大小:914.50KB
返回 下载 相关 举报
r语言-数据操作课件_第1页
第1页 / 共80页
r语言-数据操作课件_第2页
第2页 / 共80页
r语言-数据操作课件_第3页
第3页 / 共80页
r语言-数据操作课件_第4页
第4页 / 共80页
r语言-数据操作课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《r语言-数据操作课件》由会员分享,可在线阅读,更多相关《r语言-数据操作课件(80页珍藏版)》请在金锄头文库上搜索。

1、R向量、多维数组和矩阵,1、数据表示 2、应用实例 3、实验练习,实验内容,实验目的,学习R中向量、多维数组和矩阵的表示方法,常量,常量为:数值型、逻辑型和字符型三种,其中 数值型数据如:123,123.45,1.2345e30 字符型如:“Weight”,“李明”是字符型; 逻辑真值写为T或TRUE(注意区分大小写,写t或true都没意义),逻辑假值写为F或FALSE。 复数常量就用3.5-2.1i这样的写法表示。,R中的数据可以取缺失值,用符号NA(not available)代表缺失值。 函数is.na(x)返回x是否缺失值(返回值T或F)。,向量(Vector)与赋值,向量是有相同基本

2、类型的元素序列,即一维数组 定义向量的最常用办法是使用函数c( ), 它把若干个数值或字符串组合为一个向量, 比如: x x 1 1 2 3 10 11 12 13 R中用符号“ x1 = c(1, 2) 和 assign(“x1”, c(1, 2)相同 函数length(x)可以计算向量x的长度。,向量运算,可以对向量进行加()减()乘(*)除(/)、乘方()运算,其含意是对向量的每一个元素进行运算。 例如: x y =x*2+1 y 1 3.0 9.0 13.5 x+y 1 4.00 13.00 19.75 注意: 两个向量的运算是对应分量的运算,一般要求它们的长度相同,否则,短的会被循环

3、使用,%/%表示整数除法(比如5 %/% 3为1), %表示求余数(如5 % 3为2)。,可以用向量作为函数自变量, sqrt、log、exp、sin、cos、tan等函数都可以用向量作自变量,结果是对向量的每一个元素取相应的函数值 函数min和max分别取向量自变量的最小值和最大值, 函数sum计算向量自变量的元素和, 函数mean计算均值, 函数var计算样本方差(分母为n-1), 函数sd计算标准差 如果求var(x)而x是矩阵,则结果为样本协方差阵。 (行向量为观测值,列为指标变量),负数开根号要补充成复数形式 sqrt(-4) 1 NaN (not a number) warning

4、: sqrt(-4+0i) 1 2i,sort(x)返回x的元素从小到大排序的结果向量 order(x)返回使得x从小到大排列的元素下标向量(xorder(x)等效于sort(x))。 x=c(2,10,6,8,4,5) order(x) 1 1 5 6 3 4 2 xorder(x) 1 2 4 5 6 8 10,任何数与缺失值的运算结果仍为缺失值。 例如, 2*c(1, NA, 2) 1 2 NA 4 sum(c(1, NA, 2) 1 NA,最大最小值及其查询 xmin(x) 1 1 max(x) 1 10 which.min(x) 1 4 which.max(x) 1 5,range(

5、x) 1 1 10,产生有规律的数列,在R中很容易产生一个等差数列。 例如,1:n产生从1到n的整数列, -2:3产生从-2到3 的整数列, 5:2产生反向的数列: 注意优先级 1:n-1不是代表1到n-1而是向量1:n减去1, 1:n-1 1 0 1 2 3 4 1:(n-1) 1 1 2 3 4,seq函数是更一般的等差数列函数。 如只指定一个自变量n0,则seq(n)相当于1:n 。指定两个自变量时,第一量是开始值,第二量是结束值,如seq(-2,3)是从-2到3,默认公差为1 。,R函数调用的一个很好的特点是它可以使用不同个数的自变量,函数可以对不同类型的自变量给出不同结果,自变量可以

6、用“自变量名自变量值”的形式指定。例如,seq(-2,3)可以写成seq(from=-2, to=3)。可以用一个by参数指定等差数列的增加值,例如:, seq(0, 2, 0.7) 1 0.0 0.7 1.4 也可以写成 seq(from=0, to=2, by=0.7)。,参数的位置可以互换,有参数名的参数的次序任意,如: seq(0, by=0.7, to=2) 1 0.0 0.7 1.4 可以用length参数指定数列长度, 如seq(from=10, length=5)产生10到14。 seq函数还可以用一种seq(along=向量名)的格式,这时只能用这一个参数,产生该向量的下标序

7、列,如:, x 1 1.00 4.00 6.25 seq(along=x) 1 1 2 3,也可以加入by这个参数,另一个类似的函数是rep,它可以重复第一个自变量若干次,例如: rep(x,3) 1 1.00 4.00 6.25 1.00 4.00 6.25 1.00 4.00 6.25 第一个参数名为x,第二个参数名为times(重复次数)。 rep(x, each=3) 1 1.00 1.00 1.00 4.00 4.00 4.00 6.25 6.25 6.25 此外numeric(n)可以产生一个长度为n的零向量,向量可以取逻辑值,如: a = c(T, T, F) a 1 TRUE

8、TRUE FALSE 当然,逻辑向量往往是一个比较的结果,如: x b = x 3 b 1 FALSE TRUE TRUE,逻辑向量,一个向量与常量比较大小,结果还是一个向量,元素为每一对比较的结果逻辑值。 两个向量也可以比较,如: log(10*x) 1 2.302585 3.688879 4.135167 log(10*x) x 1 TRUE FALSE FALSE 比较运算符包括,=,=,!=。,两个逻辑向量可以进行与( c(young,old)(age65)+1; 1 old young young old,缺失数据 NA表示缺失、NaN表示不确定的数 注意下面例子的比较 x is.n

9、an(x) 1 FALSE TRUE FALSE FALSE is.na(x) 1 FALSE TRUE FALSE TRUE is.finite(x) 1 TRUE FALSE FALSE FALSE is.infinite(x) 1 FALSE FALSE TRUE FALSE,字符型向量,向量元素可以取字符串值。例如: c1 =c(x, sin(x) c1 1 x sin(x) ns = c(Weight, Height, age) ns 1 Weight Height age paste函数用来把它的自变量连成一个字符串,中间用空格分开,例如: paste(My, Job) 1 My

10、Job paste(Hi, Good morning) 1 Hi Good morning,连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。自变量可以是数值向量,连接时自动转换成适当的字符串表示,例如: paste(c(X, Y), =, 1:4) 1 X = 1 Y = 2 X = 3 Y = 4 分隔用的字符可以用sep参数指定,例如: paste(result., 1:5, sep= ) 1 result.1 result.2 result.3 result.4 result.5 如果给paste()函数指定了collapse参数, 则把字符串向量的各个

11、元素连接成一个字符串, 中间用collapse指定的值分隔。比如 paste(c(a, b), collapse=.) 1 a.b,还可以和日期函数一起合并,显示当天的日历和时间 paste(“Today is”, date() 1 “Today is Mon Sep 20 19:20:35 2010”,复数向量,R支持复数运算。 复数常量只要用3.5+2.1i这样的格式即可。 复向量的每一个元素都是复数。 Re()计算实部,Im()计算虚部, Mod() 计算复数模,Arg()计算复数幅角。, complex(2) 1 0+0i 0+0i complex(2,4,6) 1 4+6i 4+6i

12、 complex(1,4,6) 1 4+6i y = 1:2 + 1i*(8:9) y 1 1+8i 2+9i Re(y) 1 1 2 Im(y) 1 8 9 Mod(y) 1 8.062258 9.219544 Arg(y) 1 1.446441 1.352127,向量下标运算,某一个元素只要用xi的格式访问,其中x是一个向量名,或一个取向量值的表达式,如: x 1 1.00 4.00 6.25 x2 1 4 (c(1, 3, 5) + 5)2 1 8 可以单独改变一个元素的值,例如: x2 x 1 1.00 125.00 6.25,R提供了四种方法来访问向量的一部分,格式为xv,x为向量名

13、或向量值的表达式,v是如下的表示下标向量: 一、取正整数值的下标向量 v为一个向量,取值在1到length(x)之间,取值允许重复,例如, xc(1,3) 1 1.00 6.25 x1:2 1 1 125 xc(1,3,2,1) 1 1.00 6.25 125.00 1.00 c(a, b, c)rep(c(2,1,3), 3) 1 b a c b a c b a c,二、取负整数值的下标向量 v为一个向量,取值在length(x)到1之间,表示扣除相应位置的元素。例如: x-(1:2) 1 6.25 x-3 1 1.00 125.00,三、取逻辑值的下标向量 v为和x等长的逻辑向量,xv表示

14、取出所有v为真值的元素,如:, x 1 1.00 125.00 6.25 x xx xx0 1 numeric(0) #下标都是F,是个零长度的向量,逻辑值下标是一种强有力的检索工具,例如xsin(x)0可以取出x中所有正弦函数值为正的元素组成的向量。,四、取字符型值的下标向量 在定义向量时可以给元素加上名字,例如: ages ages 1 Li Zhang Liu 33 29 18 ages1 1 Li 33 ages1=2 # 可以改变向量中字符型元素取值 ages1 1 Li 2,向量还可用元素名字来访问元素或元素子集, agesc(Li, Liu) 1 Li Liu 33 18 向量元

15、素名可以后加,利用names(), 例如: ages1 = c(33, 29, 18) names(ages1) = c(Li, Zhang, Liu) ages1 1 Li Zhang Liu 33 29 18,R中还可以改变一部分元素的值,例如: x 1 1.00 125.00 6.25 xc(1,3) = c(144, 169) x 1 144 125 169 注意赋值的长度必须相同,例外是可以把部分元素赋为一个统一值: xc(1,3) =0 x 1 0 125 0,要把向量所有元素赋为一个相同的值而又不想改变其长度,可以用x的写法: x = 0,注意这与“x = 0”是不同的,前者赋值

16、后向量长度不变,后者使向量变为标量0。 改变部分元素值的技术与逻辑值下标方法结合可以定义向量的分段函数,,例如:要定义y=f(x)为当x y = numeric(length(x) yx yx=0 = 1 + xx=0,思考: 要定义y=f(x)为当x3.0时取x, 3.0=x3.5 时取x+10,否则取x+20; x=c(0.5,-1,1,2,3,4,1,2,3,4); 求y.,x y yxy(x=3) 1 0.5 -1.0 1.0 2.0 13.0 24.0 1.0 2.0 13.0 24.0,对象和它的模式与属性,R是一种基于对象(object)的语言,它的对象包含了若干元素作为其数据,还有一些特殊数据称为属性(attrib

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号