R软件数据操作.pptx
《R软件数据操作.pptx》由会员分享,可在线阅读,更多相关《R软件数据操作.pptx(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、常量 常量为:数值型、逻辑型和字符型三种,其中数值型数据如:123,1.2345e30 字符型如:“Weight”,“李明”是字符型;逻辑真值写为T或TRUE(注意区分大小写,写t或true都没意义),逻辑假值写为F或FALSE。复数常量就用这样的写法表示。R中的数据可以取缺失值,用符号NA代表缺失值。函数is.na(x)返回x是否缺失值(返回值T或F)。第1页/共80页向量(Vector)与赋值 向量是有相同基本类型的元素序列,即一维数组定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量,比如:x x 1 1 2 3 10 11 12 13 R中用符号“x1=c(1,
2、2)和 assign(“x1”,c(1,2)相同函数length(x)可以计算向量x的长度。第2页/共80页向量运算 可以对向量进行加()减()乘(*)除(/)、乘方()运算,其含意是对向量的每一个元素进行运算。例如:x y=x*2+1 y y2%/%表示整数除法(比如5%/%3为1),%表示求余数(如5%3为2)。第3页/共80页可以用向量作为函数自变量,sqrt、log、exp、sin、cos、tan等函数都可以用向量作自变量,结果是对向量的每一个元素取相应的函数值函数min和max分别取向量自变量的最小值和最大值,函数sum计算向量自变量的元素和,函数mean计算均值,函数var计算样本
3、方差(分母为n-1),函数sd计算标准差如果求var(x)而x是矩阵,则结果为样本协方差阵。(行向量为观测值)第4页/共80页负数开根号要补充成复数形式sqrt(-4)1 NaN#数值运算中,返回非数值的 非凡值 warning:sqrt(-4+0i)1 2i第5页/共80页sort(x)返回x的元素从小到大排序的结果向量 order(x)返回使得x从小到大排列的元素下标向量(xorder(x)等效于sort(x))。x=c(2,4,8,6,10)order(x)1 1 2 4 3 5 xorder(x)1 2 4 6 8 10任何数与缺失值的运算结果仍为缺失值。例如,2*c(1,NA,2)1
4、 2 NA 4 sum(c(1,NA,2)1 NA 第6页/共80页最大最小值及其查询 x min(x)1 1 max(x)1 10 which.min(x)1 4 which.max(x)1 5 range(x)1 1 10第7页/共80页产生有规律的数列在R中很容易产生一个等差数列。例如,1:n产生从1到n的整数列,-2:3产生从-2到3 的整数列,5:2产生反向的数列:注意优先级 1:n-1不是代表1到n-1而是向量1:n减去1,1:5-1 1 0 1 2 3 4 1:(5-1)1 1 2 3 4 第8页/共80页seq函数是更一般的等差数列函数。如只指定一个自变量n0,则seq(n)相
5、当于1:n。指定两个自变量时,第一量是开始值,第二量是结束值,如seq(-2,3)是从-2到3,默认公差为1。R函数调用的一个很好的特点是它可以使用不同个数的自变量,函数可以对不同类型的自变量给出不同结果,自变量可以用“自变量名自变量值”的形式指定。例如,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)。参数的位置可以互换第9页/共80页有参数名的参数的次序任意,如:seq(0,by=0.7,to=2)可以用length参数指
6、定数列长度,如seq(from=10,length=5)产生10到14。seq函数还可以用一种seq(along=向量名)的格式,这时只能用这一个参数,产生该向量的下标序列,如:x seq(along=x)1 1 2 3 也可以加入by这个参数第10页/共80页另一个类似的函数是rep,它可以重复第一个自变量若干次,例如:rep(x,3)第一个参数名为x,第二个参数名为times(重复次数)。rep(x,each=3)1 1.00 4.00 6.25 此外numeric(n)可以产生一个长度为n的零向量 第11页/共80页向量可以取逻辑值,如:a=c(T,T,F)a 1 TRUE TRUE F
7、ALSE 当然,逻辑向量往往是一个比较的结果,如:x b=x 3 b 1 FALSE TRUE TRUE 逻辑向量 第12页/共80页一个向量与常量比较大小,结果还是一个向量,元素为每一对比较的结果逻辑值。两个向量也可以比较,如:log(10*x)log(10*x)x 1 TRUE FALSE FALSE 比较运算符包括,=,=,!=。第13页/共80页两个逻辑向量可以进行与(&)、或(|)运算,结果是对应元素运算的结果。对逻辑向量x计算!x表示取每个元素的非。例如:x=c(1,4,6.25,1.6)(x 1.5)&(x x=c(T,F,F)!x 1 FALSE TRUE TRUE判断一个逻辑
8、向量是否都为真值的函数是all,如:all(log(10*x)x)1 FALSE 判断是否其中有真值的函数是any,如:any(log(10*x)x)1 TRUE 第14页/共80页 函数is.na(x)用来判断x的每一个元素是否缺失。如 is.na(c(1,NA,3)1 FALSE TRUE FALSE 逻辑值可以强制转换为整数值,TRUE变成1,FALSE变成0。例如,age65为老年人,否则为年轻人,可以用c(“young”,“old”)(age65)+1 表示。当年龄大于65时age65等于TRUE,加1则把TRUE转换为数值型的1,结果得2,于是返回第二个下标处的“old”。否则等于
9、0+1下标处的“young”。age=c(89,20,10,66);c(young,old)(age65)+1;1 old young young old 第15页/共80页缺失数据NA表示缺失、NaN表示不确定的数注意下面例子的比较 x is.nan(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第16页/共80页字符型向量 向量元素可以取字符串值。例如:c1=c(x,si
10、n(x)c1 1 x sin(x)ns=c(Weight,Height,“age)ns 1 Weight Height age paste函数用来把它的自变量连成一个字符串,中间用空格分开,例如:paste(My,Job)1 My Job paste(Hi,Good morning)1 Hi Good morning第17页/共80页连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。自变量可以是数值向量,连接时自动转换成适当的字符串表示,例如:paste(c(X,Y),=,1:4)1 X=1 Y=2 X=3 Y=4 分隔用的字符可以用sep参数指定,例如:pas
11、te(result.,1:5,sep=)1 result.1 result.2 result.3 result.4 result.5 如果给paste()函数指定了collapse参数,则把字符串向量的各个元素连接成一个字符串,中间用collapse指定的值分隔。比如 paste(c(a,b),collapse=.)1 第18页/共80页还可以和日期函数一起合并,显示当天的日历和时间paste(“Today is”,date()1“Today is Mon Sep 26 9:20:35 2011”第19页/共80页复数向量 R支持复数运算。复数常量只要用这样的格式即可。复向量的每一个元素都是复
12、数。Re()计算实部,Im()计算虚部,Mod()计算复数模,Arg()计算复数幅角。第20页/共80页 complex(2)1 0+0i 0+0i complex(2,4,6)1 4+6i 4+6i complex(1,4,6)1 4+6i y=1:2+1i*(8:9)#注意这里i前面的1不能少 y 1 1+8i 2+9i Re(y)1 1 2 Im(y)1 8 9 Mod(y)Arg(y)第21页/共80页向量下标运算 某一个元素只要用xi的格式访问,其中x是一个向量名,或一个取向量值的表达式,如:x x2 1 4 (c(1,3,5)+5)2 1 8可以单独改变一个元素的值,例如:x2 x
13、 第22页/共80页R提供了四种方法来访问向量的一部分,格式为xv,x为向量名或向量值的表达式,v是如下的表示下标向量:一、取正整数值的下标向量 v为一个向量,取值在1到length(x)之间,取值允许重复,例如,xc(1,3)x1:2 1 1 125 xc(1,3,2,1)c(a,b,c)rep(c(2,1,3),3)1 b a c b a c b a c 第23页/共80页二、取负整数值的下标向量 v为一个向量,取值在length(x)到1之间,表示扣除相应位置的元素。例如:x-(1:2)x-3第24页/共80页三、取逻辑值的下标向量三、取逻辑值的下标向量 v为和x等长的逻辑向量,xv表示
14、取出所有v为真值的元素,如:x x xx xx0可以取出x中所有正弦函数值为正的元素组成的向量。第25页/共80页四、取字符型值的下标向量 在定义向量时可以给元素加上名字,例如:ages ages 1 Li Zhang Liu 33 29 18 ages1 1 Li 33 ages1=2#可以改变向量中字符型元素取值 ages1 1 Li 2 第26页/共80页 向量还可用元素名字来访问元素或元素子集,agesc(Li,Liu)1 Li Liu 33 18向量元素名可以后加,利用names(),例如:ages1=c(33,29,18)names(ages1)=c(Li,Zhang,Liu)ag
15、es1 1 Li Zhang Liu 33 29 18 第27页/共80页 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 第28页/共80页要把向量所有元素赋为一个相同的值而又不想改变其长度,可以用x的写法:x=0 注意这与“x=0”是不同的,前者赋值后向量长度不变,后者使向量变为标量0。改变部分元素值的技术与逻辑值下标方法结合可以定义向量的分段函数,例如:要定义y=f(x)为当x y=num
16、eric(length(x)yx0=1-xx yx=0=1+xx=0 第29页/共80页思考:要定义y=f(x)为当时取x,3.0=xx y yx3-xxy(x=3)&(x3.5)=3)&(xyx3.5 3.5+20;x;y;第30页/共80页对象和它的模式与属性R是一种基于对象(object)的语言,它的对象包含了若干元素作为其数据,还有一些特殊数据称为属性(attribute),一个向量是一个对象,一个图形也是一个对象。R的对象分为单纯型(atomic)和复合型(recursive)单纯型:所有的元素都是同一种基本类型,如字符串向量,数值型向量都是单纯型 复合型:元素可以是不同类型的对象,
17、如列表(list),可以由不同类型的对象组成其元素,元素可以以它们各自单独的方式被列出。注意:空向量也有自己的模式,如:空的字符串会显示为:character(0)空的数值向量会显示为:numeric(0)R的对象还有一种特殊的空值型(null)z x mode(x)1“numeric”mode(x1)1 “logical”length(x)1 3长度为零的向量 numeric()或者numeric(0)character()或者character(0)第32页/共80页R允许强制转换对象的类型 x x y-numeric();y2 z2 x4 x x even even length(eve
18、n);1 5 length(even)fruit mode(fruit)1“numeric”attributes(fruit)$names 1 apple orange attributes(x)NULL第36页/共80页用attr()可以对对象的特有属性进行赋值 attr(fruit,names)fruit peanut almond 1 2 attr(fruit,type)fruit;peanut almond 1 2 attributes(fruit)$names 1 peanut almond$type 1 nut第37页/共80页多维数组和矩阵数组(array)和矩阵(matrix)
19、数组(array):带多个下标的类型相同的元素的集合,常用的是数值型的数组如矩阵,也可以有其它类型(如字符型、逻辑型、复型数组)。数组有一个特征属性叫做维数向量(dim属性),比如维数向量有两个元素时数组为二维数组(矩阵)。维数向量的每一个元素指定了该下标的上界,下标的下界总为1。向量只有定义了维数向量(dim属性)后才能被看作是数组。来看下面两个例子第38页/共80页例 a=1:24 a dim(a)=c(6,4)#a是6行4列结构的数组 a ,1,2,3,4 1,1 7 13 19 2,2 8 14 20 3,3 9 15 21 4,4 10 16 22 5,5 11 17 23 6,6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 数据 操作
限制150内