版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A.3高级数据结构
数据对象:矩阵,数组,数据框架和列表矩阵是二维向量,每个元素需要用两个指标表示,行和列。同理n维数组。向量,矩阵,数组要求一致的数据类型。数据框与矩阵类似,不同点是可以允许类型不同。列表是数据框的扩展,可以是不整齐的行和列。
A.3高级数据结构
数据对象:矩阵,数组,数据框架和列表A.3.1矩阵的操作和运算1.定义matrix(data,nrow,ncol,[byrow=F])
A.3.1矩阵的操作和运算例子:把c(1,2,…,20)转换为4*5矩阵:>x=matrix(1:20,4,5,byrow=F);x[,1][,2][,3][,4][,5][1,]1591317[2,]26101418[3,]37111519[4,]48121620>x=matrix(1:20,4,5,byrow=T);x[,1][,2][,3][,4][,5][1,]12345[2,]678910[3,]1112131415[4,]1617181920赋予列名dimnames(x.matrix)=list(NULL,c(“a”,“b”)x.matrix#NULL,取消相应名称,例子:把c(1,2,…,20)转换为4*5矩阵:X<-matrix(1:6,ncol=2,byrow=T)dimnames(X)<-list(c("one","two","three"),c("First","Second"))2.元素的提取x.matrix[1,2]x[3,4]x[,2]X<-matrix(1:6,ncol=2,byrow=T)3.运算x=matrix(c(1,2,3,4),2)y=matrix(c(3,1,5,2),2)数乘2*x加减x+y转置t(x)solve(x,y)#解xt=y3.运算apply(data,dim,function,..)x<-matrix(c(1,2,3,4),2)apply(x,2,max)apply(x,2,min)apply(data,dim,function,..)x=matrix(1:30,5,6);y=matrix(rnorm(20),4,5)apply(x,1,mean)[1]13.514.515.516.517.5apply(x,2,sum)[1]15406590115140apply(x,2,prod)[1]120302403603601860480637560017100720x=matrix(1:30,5,6);y=matrix(rn4.合并cbind与rbindx=matrix(c(1,2,3,4),2);y=matrix(c(3,1,5,2),2)z=c(7,6)cbind(x,z)rbind(x,z)4.合并A.3.2数组生成数组或矩阵数组(array)可以看成是带多个下标的类型相同的元素的集合,常用的是数值型的数组如矩阵,也可以有其它类型(如字符型、逻辑型、复数型).R可以很容易地生成和处理数组,特别是矩阵(二维数组).数组有一个特征属性叫做维数向量(dim属性),维数向量是一个元素取正整数值的向量,其长度是数组的维数,比如维数向量有两个元素时数组为二维数组(矩阵).维数向量的每一个元素指定了该下标的上界,下标的下界总为1.A.3.2数组a.将向量定义成数组向量只有定义了维数向量(dim属性)后才能被看作是数组,比如:z<-1:12dim(z)<-c(3,4)注意:矩阵的元素是按列存放的,也可以把向量定义为一维数组,例如:dim(z)<-12a.将向量定义成数组2.用array()函数构造多维数组R软件可以用array()函数直接构造数组,其构造形式为array(data=NA,dim=length(data),dimnames=NULL)其中data是一个向量数据,dim是数组各维的长度,缺省时为原向量的长度.dimnames是数组维的名字,缺省时为空,如x<-array(1:20,dim=c(4,5))产生一个4x5的二维数组(矩阵)2.用array()函数构造多维数组A.3.3数据框数据框是R的一种数据结构,它通常是矩阵形式的数据,但矩阵各列可以是不同类型的,数据框每列是一个变量,每行是一个观测.但是,数据框有更一般的走义,它是一种特殊的列表对象,有一个值为"data.frame"的class属性,各列表成员必须是向量(数值型、字符型、逻辑型)、因子、数值型矩、列表,或其它数据框,向量、因子成员为数据框提供一个变量,如果向量非数值型会被强制转换为因子,而矩阵、列表、数据框这样的成员为新数据框提供了和其列数、成员数、变量数相同个数的变量,作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数).
A.3.3数据框数据框是R的一种数据结构,它通常是矩阵形式尽管如此,一般还是可以把数据框看作是一种推广了的矩阵,它可以用矩阵形式显示,可以用对矩阵的下标引用方法来引用其元素或子集.1.数据框的生成数据框可以用data.frame()函数生成,其用法与list()函数相同,各自变量变成数据框的成分,自变量可以命名,成为变量名,例如尽管如此,一般还是可以把数据框看作是一种推广了的矩阵,它可以df<-data.frame(Name=c("Alice","Becka","James","Jeffrey","John"),Sex=c("F","F","M","M","M"),Age=c(13,13,12,13,12),Height=c(56.5,65.3,57.3,62.5,59.0),Weight=c(84.0,98.0,83.0,84.0,99.5));dfdf<-data.frame(如果一个列表的各个成分满足数据框成分的要求,它可以用as.data.frame()函数强制转换为数据框,比如,lst<-list(Name=c("Alice","Becka","James","Jeffrey","John"),Sex=c("F","F","M","M","M"),Age=c(13,13,12,13,12),Height=c(56.5,65.3,57.3,62.5,59.0),Weight=c(84.0,98.0,83.0,84.0,99.5));lst#则as.data.frame(lst)是与df相同的数据框as.data.frame(lst)如果一个列表的各个成分满足数据框成分的要求,它可以用as.dattach()数据绑定a=matrix(c(1,2,3,4),2)t=c(“good”,“good”)new.a=data.frame(a,t)attach(new.a)tX1detach()解除attach()数据绑定A.3.4列表a.列表的构造列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型,元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表,下面是如何构造列表的例子.lst<-list(name=c("Fred","wife","Mary"),no.children=3,child.ages=c(4,7,9))A.3.4列表列表元素总可以用“列表名[[下标]]”的格式引用,例如,lst[[2]]lst[[3]][2]但是,列表不同于向量,我们每次只能引用一个元素,如lst[[1:2]]的用法是不允许的.列表元素总可以用“列表名[[下标]]”的格式引用,例如,注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表).在定义列表时如果指定了元素的名字(如lst中的name,wife,no.children,child.ages),则引用列表元素还可以用它的名字作为下标,格式为“列表名[["元素名"]]",如lst[["name"]]lst[["child.ages"]]注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合另一种格式是“列表名$元素名”,如lst$namelst$child.ages构造列表的一般格式为lst<-list(name_l=object_l,...,name_m=object_m)其中name是列表元素的名称,object是列表元素的对象另一种格式是“列表名$元素名”,如2.列表的修改列表的元素可以修改,只要把元素引用赋值即可,如将Fred改成John.lst$name<-"John"如果需要增加一项家庭收入,夫妻的收入分别是1980和1600,则输入lst$income<-c(1980,1600)如果要删除列表的某一项,则将该项赋空值(NULL).几个列表可以用连接函数c()连接起来,结果仍为一个列表,其元素为各自变量的列表元素,如list.ABC<-c(list.A,list.B,list.C)2.列表的修改3.返回值为列表的函数在R中,有许多函数的返回值是列表,如求特征值特征向量的函数eigen(),奇异值分解函数svd()和最小二乘函数数lsfit()等3.返回值为列表的函数A.4数据处理在应用统计学中,数据量一般是比较大的,变量也很多,如果用上述方法来建立数据集,是不可取的,上述方法适用于少量数据、少量变量的分析,对于大量数据和变量,一般应在其他软件中输入(或数据来源是其他软件的输出结果),再读到R中处理.R软件有多种读数据文件的方法。另外,所有的计算结果也不应只在屏幕上输出,应当保存在文件中,以备使用。A.4数据处理在应用统计学中,数据量一般是比较大的,变量也
A.4.1保存数据write.table():data(iris)iris[1:3]write.table(iris,“C:\\x.TXT”)
A.4.1保存数据write.table():A.4.2读入数据读纯文本文件有两个函数,一个是read.table()函数,另一个是scan()函数.1.read.table()函数read.table()函数是读表格形式的文件:A.4.2读入数据读纯文本文件有两个函数,一个是read.
read.table("C:\\student.TXT")V1V2V3V4V5V61namemathphysicschemliteratenglish2Katty65617284793Leo77777664554Ricky67634965575Marry80697574636Mark74708084747Steven78847562648Simon66716752579Angel777157727110Jed83100794150read.table("C:\\student.TXT")A.4.3数据转换as.factor(x)转换为因子as.array(x)as.character(a)as.numeric(x)as.data.frame(x)a=factor(c(1,2,5),levels=c(1,3,5))aas.numeric(a)a1=as.character(a)a2=as.numeric(a1)a2先转化为字符型-数值型A.4.3数据转换as.factor(x)转换为因子28类的转换as.numeric()#转换为数值型as.logical()#转换为逻辑型as.charactor()#转换为字符串as.matrix()#转换为矩阵as.data.frame()#转换为数据框as.factor()#转换为因子28类的转换as.numeric()#转换为数值型因为R中对矢量的计算是对矢量中的各个元素单独进行的,因此在R中很容易对数据进行转换。如果生成了新的数据行或列,可以用rbind()或cbind()把它们组合到已有的数据框中。因为R中对矢量的计算是对矢量中的各个元素单独进行的,因此在R相关函数R中还有一些可以专门用于数据转换的函数,可以简化数据转化的操作:transform()可以对数据框中已有的元素的值进行转换,也可以利用已有的变量生成新的变量。apply()可以把函数操作运用到矩阵的行或列上去。lapply()可以把函数操作运用到列表或数据框中的行或列上去,返回值为列表。相关函数R中还有一些可以专门用于数据转换的函数,可以简化数据sapply()与lapply()类似,但是返回值为矢量或矩阵。vapply()与sapply()类似,但是返回值为特定的类型,可以提高运算的效率。tapply()可以把函数操作分组运用到矩阵上去。mapply()do.call()可以进行有条件的转换:ifelse(test,yes,no)which()sapply()与lapply()类似,但是返回值为矢量或矩数据编辑R内置了简单的数据编辑器。可以通过菜单Edit->Dataeditor...打开数据编辑器。也可以通过fix()命令实现。也可以通过edit()命令实现。特别注意edit()命令并不把修改的结果回传给变量,而是传给.Last.value对象,因此一般情况下不要使用edit()命令。数据编辑修改变量名可以使用fix()调用内置编辑器直接修改。可以使用reshape包中的rename()函数。为变量设置标签使用Hmisc包的label()函数。删除变量删除独立的对象:rm()。删除数据框/列表中的某个变量:令其为NULL。修改变量名重新编码/赋值把连续变量转变为分类变量:cut(),Hmisc包中的cut2()。寻找分割点:rpart包中的rpart(),Hmisc包中的tree()。car包中的recode()。组合数据行rbind()如果两组原始数据有不同的变量,可以使用reshape包中的rbind.fill()。重新编码/赋值组合数据框cbind()merge()reshape包中的merge_all()数据汇总aggregate()by()缺失值判断某个值是否缺失值:is.na()判断某行数据是否完整:complete.cases()剔除缺失值:na.omit()组合数据框重复数据识别重复数据:duplicated()去除重复数据:unique()排序可以用sort()函数对数组和矩阵内的元素进行排序。用order()函数可以得到数组和矩阵排序后每个元素的位置。重复数据A.5编写程序A.5.1循环和控制(1)控制结构有if/else语句、switch语句.
1.if/else语句
if/else语句是分支语句中主要的语句,if/else语句的格式为
if(cond)statement_l第一句的意义是:如果条件cond成立,则执行表达式statement_l;否则跳过,
A.5编写程序A.5.1循环和控制if(cond)statement_lelsestatement_2第二句的意义是:如果条件cond成立,则执行表达式statement_l;否则执行表达式statement_2.
if(条件)表达式1else表达式2x=1if(x==1){print(“xistrue”)}else{print(“xisfalse”)}if(cond)statement_lelse例如,x<-c(2,3,1)if(any(x<=0))y<-log(1+x)elsey<-log(x)注意:此命令与下面的命令y<-if(any(x<=0))log(1+x)elselog(x)等价,例如,作用:避免除零或负数的对数等数学问题>x=c(6:-4)>if(x>=0)sqrt(x)elseNAx=rnorm(1);if(x>0)y=xelsey=-x+10作用:避免除零或负数的对数等数学问题(2)循环结构循环语句有for循环、while循环1.for循环语句for循环的格式为for(nameinexpr_l)expr_2其中name是循环变量,expr_l是一个向量表达式(通常是个序列,如1:20),expr_2通常是一组表达式。(2)循环结构如构造一个4阶的Hilbert矩阵:n<-4;x<-array(0,dim=c(n,n))for(iin1:n){for(jin1:n){x[i,j]<-1/(i+j-1)}}x如构造一个4阶的Hilbert矩阵:2.while循环语句while循环语句while语句的格式为while(condition)expr当条件condition成立,则执行表达式expr.2.while循环语句例如,编写一个计算1000以内的Fibonacci数.f<-c(1,1)f[1]<-1;f[2]<-1;i<-1while(f[i]+f[i+1]<1000){f[i+2]<-f[i]+f[i+1]i<-i+1;}f例如,编写一个计算1000以内的Fibonacci数.A.5.2函数函数定义的格式如下,name<-function(arg_1,arg_2,...)expressionexpression是R中的表达式(通常是一组表达式),arg_1,arg_2,…表示函数的参数,表达式中,放在程序最后的信息是函数的返回值,返回值可以是向量、数组(矩阵)、列表或数据框。A.5.2函数Y=x^2+sin(x)f1=function(x){x^2+sin(x)}f1(10)f1(1:9)
f2=function(x,y){return(x^2);x^2+y)f2(2,2)f3=function(x,y){return(x^2);x+y;x^2+y}f3(3,3)Y=x^2+sin(x)f1=function(x){x^编写一个函数,给出两个数之后,直接给出这两个数的平方和。sqtest<-function(x,y){z1=x^2;z2=y^2;z3=z1+z2;return(z3);}编写一个函数,给出两个数之后,直接给出这两个数的平方和。问题:输入直角三角形的两个边长,求其斜边长。定义函数:rcal<-function(x,y){z<-x^2+y^2result<-sqrt(z)return(result)}调用函数:rcal(3,4)问题:输入直角三角形的两个边长,求其斜边长。定义函数:A.3高级数据结构
数据对象:矩阵,数组,数据框架和列表矩阵是二维向量,每个元素需要用两个指标表示,行和列。同理n维数组。向量,矩阵,数组要求一致的数据类型。数据框与矩阵类似,不同点是可以允许类型不同。列表是数据框的扩展,可以是不整齐的行和列。
A.3高级数据结构
数据对象:矩阵,数组,数据框架和列表A.3.1矩阵的操作和运算1.定义matrix(data,nrow,ncol,[byrow=F])
A.3.1矩阵的操作和运算例子:把c(1,2,…,20)转换为4*5矩阵:>x=matrix(1:20,4,5,byrow=F);x[,1][,2][,3][,4][,5][1,]1591317[2,]26101418[3,]37111519[4,]48121620>x=matrix(1:20,4,5,byrow=T);x[,1][,2][,3][,4][,5][1,]12345[2,]678910[3,]1112131415[4,]1617181920赋予列名dimnames(x.matrix)=list(NULL,c(“a”,“b”)x.matrix#NULL,取消相应名称,例子:把c(1,2,…,20)转换为4*5矩阵:X<-matrix(1:6,ncol=2,byrow=T)dimnames(X)<-list(c("one","two","three"),c("First","Second"))2.元素的提取x.matrix[1,2]x[3,4]x[,2]X<-matrix(1:6,ncol=2,byrow=T)3.运算x=matrix(c(1,2,3,4),2)y=matrix(c(3,1,5,2),2)数乘2*x加减x+y转置t(x)solve(x,y)#解xt=y3.运算apply(data,dim,function,..)x<-matrix(c(1,2,3,4),2)apply(x,2,max)apply(x,2,min)apply(data,dim,function,..)x=matrix(1:30,5,6);y=matrix(rnorm(20),4,5)apply(x,1,mean)[1]13.514.515.516.517.5apply(x,2,sum)[1]15406590115140apply(x,2,prod)[1]120302403603601860480637560017100720x=matrix(1:30,5,6);y=matrix(rn4.合并cbind与rbindx=matrix(c(1,2,3,4),2);y=matrix(c(3,1,5,2),2)z=c(7,6)cbind(x,z)rbind(x,z)4.合并A.3.2数组生成数组或矩阵数组(array)可以看成是带多个下标的类型相同的元素的集合,常用的是数值型的数组如矩阵,也可以有其它类型(如字符型、逻辑型、复数型).R可以很容易地生成和处理数组,特别是矩阵(二维数组).数组有一个特征属性叫做维数向量(dim属性),维数向量是一个元素取正整数值的向量,其长度是数组的维数,比如维数向量有两个元素时数组为二维数组(矩阵).维数向量的每一个元素指定了该下标的上界,下标的下界总为1.A.3.2数组a.将向量定义成数组向量只有定义了维数向量(dim属性)后才能被看作是数组,比如:z<-1:12dim(z)<-c(3,4)注意:矩阵的元素是按列存放的,也可以把向量定义为一维数组,例如:dim(z)<-12a.将向量定义成数组2.用array()函数构造多维数组R软件可以用array()函数直接构造数组,其构造形式为array(data=NA,dim=length(data),dimnames=NULL)其中data是一个向量数据,dim是数组各维的长度,缺省时为原向量的长度.dimnames是数组维的名字,缺省时为空,如x<-array(1:20,dim=c(4,5))产生一个4x5的二维数组(矩阵)2.用array()函数构造多维数组A.3.3数据框数据框是R的一种数据结构,它通常是矩阵形式的数据,但矩阵各列可以是不同类型的,数据框每列是一个变量,每行是一个观测.但是,数据框有更一般的走义,它是一种特殊的列表对象,有一个值为"data.frame"的class属性,各列表成员必须是向量(数值型、字符型、逻辑型)、因子、数值型矩、列表,或其它数据框,向量、因子成员为数据框提供一个变量,如果向量非数值型会被强制转换为因子,而矩阵、列表、数据框这样的成员为新数据框提供了和其列数、成员数、变量数相同个数的变量,作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数).
A.3.3数据框数据框是R的一种数据结构,它通常是矩阵形式尽管如此,一般还是可以把数据框看作是一种推广了的矩阵,它可以用矩阵形式显示,可以用对矩阵的下标引用方法来引用其元素或子集.1.数据框的生成数据框可以用data.frame()函数生成,其用法与list()函数相同,各自变量变成数据框的成分,自变量可以命名,成为变量名,例如尽管如此,一般还是可以把数据框看作是一种推广了的矩阵,它可以df<-data.frame(Name=c("Alice","Becka","James","Jeffrey","John"),Sex=c("F","F","M","M","M"),Age=c(13,13,12,13,12),Height=c(56.5,65.3,57.3,62.5,59.0),Weight=c(84.0,98.0,83.0,84.0,99.5));dfdf<-data.frame(如果一个列表的各个成分满足数据框成分的要求,它可以用as.data.frame()函数强制转换为数据框,比如,lst<-list(Name=c("Alice","Becka","James","Jeffrey","John"),Sex=c("F","F","M","M","M"),Age=c(13,13,12,13,12),Height=c(56.5,65.3,57.3,62.5,59.0),Weight=c(84.0,98.0,83.0,84.0,99.5));lst#则as.data.frame(lst)是与df相同的数据框as.data.frame(lst)如果一个列表的各个成分满足数据框成分的要求,它可以用as.dattach()数据绑定a=matrix(c(1,2,3,4),2)t=c(“good”,“good”)new.a=data.frame(a,t)attach(new.a)tX1detach()解除attach()数据绑定A.3.4列表a.列表的构造列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型,元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表,下面是如何构造列表的例子.lst<-list(name=c("Fred","wife","Mary"),no.children=3,child.ages=c(4,7,9))A.3.4列表列表元素总可以用“列表名[[下标]]”的格式引用,例如,lst[[2]]lst[[3]][2]但是,列表不同于向量,我们每次只能引用一个元素,如lst[[1:2]]的用法是不允许的.列表元素总可以用“列表名[[下标]]”的格式引用,例如,注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表).在定义列表时如果指定了元素的名字(如lst中的name,wife,no.children,child.ages),则引用列表元素还可以用它的名字作为下标,格式为“列表名[["元素名"]]",如lst[["name"]]lst[["child.ages"]]注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合另一种格式是“列表名$元素名”,如lst$namelst$child.ages构造列表的一般格式为lst<-list(name_l=object_l,...,name_m=object_m)其中name是列表元素的名称,object是列表元素的对象另一种格式是“列表名$元素名”,如2.列表的修改列表的元素可以修改,只要把元素引用赋值即可,如将Fred改成John.lst$name<-"John"如果需要增加一项家庭收入,夫妻的收入分别是1980和1600,则输入lst$income<-c(1980,1600)如果要删除列表的某一项,则将该项赋空值(NULL).几个列表可以用连接函数c()连接起来,结果仍为一个列表,其元素为各自变量的列表元素,如list.ABC<-c(list.A,list.B,list.C)2.列表的修改3.返回值为列表的函数在R中,有许多函数的返回值是列表,如求特征值特征向量的函数eigen(),奇异值分解函数svd()和最小二乘函数数lsfit()等3.返回值为列表的函数A.4数据处理在应用统计学中,数据量一般是比较大的,变量也很多,如果用上述方法来建立数据集,是不可取的,上述方法适用于少量数据、少量变量的分析,对于大量数据和变量,一般应在其他软件中输入(或数据来源是其他软件的输出结果),再读到R中处理.R软件有多种读数据文件的方法。另外,所有的计算结果也不应只在屏幕上输出,应当保存在文件中,以备使用。A.4数据处理在应用统计学中,数据量一般是比较大的,变量也
A.4.1保存数据write.table():data(iris)iris[1:3]write.table(iris,“C:\\x.TXT”)
A.4.1保存数据write.table():A.4.2读入数据读纯文本文件有两个函数,一个是read.table()函数,另一个是scan()函数.1.read.table()函数read.table()函数是读表格形式的文件:A.4.2读入数据读纯文本文件有两个函数,一个是read.
read.table("C:\\student.TXT")V1V2V3V4V5V61namemathphysicschemliteratenglish2Katty65617284793Leo77777664554Ricky67634965575Marry80697574636Mark74708084747Steven78847562648Simon66716752579Angel777157727110Jed83100794150read.table("C:\\student.TXT")A.4.3数据转换as.factor(x)转换为因子as.array(x)as.character(a)as.numeric(x)as.data.frame(x)a=factor(c(1,2,5),levels=c(1,3,5))aas.numeric(a)a1=as.character(a)a2=as.numeric(a1)a2先转化为字符型-数值型A.4.3数据转换as.factor(x)转换为因子76类的转换as.numeric()#转换为数值型as.logical()#转换为逻辑型as.charactor()#转换为字符串as.matrix()#转换为矩阵as.data.frame()#转换为数据框as.factor()#转换为因子28类的转换as.numeric()#转换为数值型因为R中对矢量的计算是对矢量中的各个元素单独进行的,因此在R中很容易对数据进行转换。如果生成了新的数据行或列,可以用rbind()或cbind()把它们组合到已有的数据框中。因为R中对矢量的计算是对矢量中的各个元素单独进行的,因此在R相关函数R中还有一些可以专门用于数据转换的函数,可以简化数据转化的操作:transform()可以对数据框中已有的元素的值进行转换,也可以利用已有的变量生成新的变量。apply()可以把函数操作运用到矩阵的行或列上去。lapply()可以把函数操作运用到列表或数据框中的行或列上去,返回值为列表。相关函数R中还有一些可以专门用于数据转换的函数,可以简化数据sapply()与lapply()类似,但是返回值为矢量或矩阵。vapply()与sapply()类似,但是返回值为特定的类型,可以提高运算的效率。tapply()可以把函数操作分组运用到矩阵上去。mapply()do.call()可以进行有条件的转换:ifelse(test,yes,no)which()sapply()与lapply()类似,但是返回值为矢量或矩数据编辑R内置了简单的数据编辑器。可以通过菜单Edit->Dataeditor...打开数据编辑器。也可以通过fix()命令实现。也可以通过edit()命令实现。特别注意edit()命令并不把修改的结果回传给变量,而是传给.Last.value对象,因此一般情况下不要使用edit()命令。数据编辑修改变量名可以使用fix()调用内置编辑器直接修改。可以使用reshape包中的rename()函数。为变量设置标签使用Hmisc包的label()函数。删除变量删除独立的对象:rm()。删除数据框/列表中的某个变量:令其为NULL。修改变量名重新编码/赋值把连续变量转变为分类变量:cut(),Hmisc包中的cut2()。寻找分割点:rpart包中的rpart(),Hmisc包中的tree()。car包中的recode()。组合数据行rbind()如果两组原始数据有不同的变量,可以使用reshape包中的rbind.fill()。重新编码/赋值组合数据框cbind()merge()reshape包中的merge_all()数据汇总aggregate()by()缺失值判断某个值是否缺失值:is.na()判断某行数据是否完整:complete.cases()剔除缺失值:na.omit()组合数据框重复数据识别重复数据:duplicated()去除重复数据:unique()排序可以用sort()函数对数组和矩阵内的元素进行排序。用order()函数可以得到数组和矩阵排序后每个元素的位置。重复数据A.5编写程序A.5.1循环和控制(1)控制结构有if/else语句、switch语句.
1.if/else语句
if/else语句是分支语句中主要的语句,if/else语句的格式为
if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股骨颈骨折切开复位内固定术后护理查房
- 企业信息收集与整合分析工具
- 企业预算编制及管理模板
- 科技创新成果保护与使用责任承诺书8篇
- 公司运营综合方案及市场分析报告
- 合规创新行动承诺书5篇
- 培训成果确保承诺书6篇
- 山东省菏泽市名校2026届初三下期5月月考英语试题试卷含解析
- 2026年江苏省徐州市泉山区中考模拟金典卷英语试题(十)试题含解析
- 公共关系危机管理方案制定指南
- 2026广西北海市从“五方面人员”中选拔乡镇领导班子成员25人考试备考题库及答案解析
- 2026杭州市市级机关事业单位编外招聘148人笔试参考题库及答案解析
- 2026年春季贵州人民版(2024)六年级下册综合实践活动《小学毕业留念》教学课件
- 湖北省襄阳市2026届高三下学期3月一模统一调研测试数学试题
- 第4课《坚持才会有收获》课件
- 2026年春季安全教育班会记录表(19周):开学安全第一课-启航安全守护新学期
- 2025年黄山职业技术学院单招职业技能测试题库附答案解析
- 小学卫生保洁工作制度
- 初中八年级物理双向细目表
- 绿色建造-绿色施工
- 临沧市凤庆县大摆田水库工程环境影响报告书报批版
评论
0/150
提交评论