R语言学习系列04数据结构Ⅱ-数据框,因子,列表_第1页
R语言学习系列04数据结构Ⅱ-数据框,因子,列表_第2页
R语言学习系列04数据结构Ⅱ-数据框,因子,列表_第3页
R语言学习系列04数据结构Ⅱ-数据框,因子,列表_第4页
R语言学习系列04数据结构Ⅱ-数据框,因子,列表_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

04.数据结构Ⅱ—数据框,因子,列表四、数据框(数据表)R语言中做统计分析的样本数据,都是按数据框类型操作的。数据框的每一列代表一个变量属性的所有取值,每一行代表一条样本数据。1.创建数据框通过函数data.frame()把多个向量组合起来创建,并设置列名称。其基本格式为:data.frame(col1,col2,col3,...)其中,列向量col1,col2,col3,…可以为任意类型。注:矩阵也可以通过函数data.frame()转化为数据库。>data_iris<-data.frame(Sepal.Length=c(5.1,4.9,4.7,4.6),Sepal.Width=c(3.5,3.0,3.2,3.1),Petal.Length=c(1.4,1.4,1.3,1.5),Petal.Width=rep(0.2,4))>data_irisSepal.LengthSepal.WidthPetal.LengthPetal.Width15.13.51.40.224.93.01.40.234.73.21.30.244.63.11.50.2>#矩阵转化为数据框>dmatrix<-matrix(1:8,c(4,2))>dmatrix[,1][,2][1,]15[2,]26[3,]37[4,]48>data.frame(dmatrix)X1X21152263374482.数据框索引列标或列名称索引:data_iris[,1]——返回数据框data_iris的第1列data_iris$Sepal.Length或data_iris["Sepal.Length"]——同data_iris[,1]行索引:data_iris[1,]——返回数据框data_iris的第1行data_iris[1:3,]——返回数据框data_iris的第1至3行元素索引:data_iris[1,1]——返回数据框data_iris的第1列第1个数据data_iris$Sepal.Length[1]或data_iris["Sepal.Length"][1]——返回数据框data_iris的Sepal.Length列第1个数据用函数subset()按条件索引>subset(data_iris,Sepal.Length<5)Sepal.LengthSepal.WidthPetal.LengthPetal.Width24.93.01.40.234.73.21.30.244.63.11.50.2注:还可用sqldf包中的sqldf()函数,借助sql语句索引。例如,library(sqldf)sqldf("select*frommtcarswherecarb=1orderbympg",s=TRUE)3.数据框的编辑类似矩阵操作,可通过函数rbind(),增加行(样本数据),要求宽度(列数)相同;函数cbind(),增加列(属性变量),要求高度(行数)相同。删除样本(行),类似矩阵操作。用函数names()查看或修改数据框的列名。>#增加样本数据(行)>data_iris<-rbind(data_iris,list(5.0,3.6,1.4,0.2))>data_irisSepal.LengthSepal.WidthPetal.LengthPetal.Width15.13.51.40.224.93.01.40.234.73.21.30.244.63.11.50.255.03.61.40.2>#增加属性变量(列)>data_iris<-cbind(data_iris,Species=rep("setosa",5))>data_irisSepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies15.13.51.40.2setosa24.93.01.40.2setosa34.73.21.30.2setosa44.63.11.50.2setosa55.03.61.40.2setosa>#删除数据>data_iris[,-1]#删除第1列Sepal.WidthPetal.LengthPetal.WidthSpecies13.51.40.2setosa23.01.40.2setosa33.21.30.2setosa43.11.50.2setosa53.61.40.2setosa>data_iris[-1,]#删除第1行Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies24.93.01.40.2setosa34.73.21.30.2setosa44.63.11.50.2setosa55.03.61.40.2setosa>#编辑数据框列名>names(data_iris)#查看数据框列名[1]"Sepal.Length""Sepal.Width""Petal.Length""Petal.Width""Species">names(data_iris)[1]="sepal.length"#修改第1列列名>names(data_iris)[1]"sepal.length""Sepal.Width""Petal.Length""Petal.Width""Species"五、因子(factor)变量分为名义型(无顺序好坏之分的分类变量,如性别)、有序型(有顺序好坏之分的分类变量,如疗效)、连续型(通常的数值变量,可带小数位)。名义型和有序型的类别变量,在R中称为因子。因子提供了一个简单且紧凑的形式来处理分类数据,因子用水平来表示所有可能的取值,例如,性别有两个水平:男、女。1.创建因子(1)用函数factor(),基本格式为:factor(x,levels,labels=...,exclude=...,ordered=...,nmax=...)其中,x为创建因子的数据向量;levels指定因子的水平数,默认为x中不重复的所有值;labels设置各水平名称(前缀),与水平一一对应;exclude指定有哪些水平是不需要的;ordered设置是否对因子水平排序,默认为TRUE即有序因子,FALSE为无序因子;nmax设定水平数的上限。>ff<-factor(substring("statistics",1:10,1:10),levels=letters)>ff[1]statisticsLevels:abcdefghijklmnopqrstuvwxyz>ff[,drop=TRUE]#去掉未包含在向量中的水平,同f.<-factor(ff)[1]statisticsLevels:acist>factor(1:10,labels="let")[1]let1let2let3let4let5let6let7let8let9let10Levels:let1let2let3let4let5let6let7let8let9let10>factor(LETTERS[3:1],ordered=TRUE)[1]CBALevels:A<B<C注:函数substring()用来提取字符串的子串,第2个参数是起始位置,第3个参数是终止位置;letters和LETTERS是R中专有变量,表示26个小写/大写字母组成的字符向量。(2)用函数gl()创建因子序列用函数gl()生成不同水平的因子序列,基本格式为:gl(n,k,length=n*k,labels=seq_len(n),ordered=FALSE)其中,n表示因子水平数;k表示每个水平的重复数;length表示生成序列的长度;labels为表示因子水平的n维向量;ordered指定是否为有序因子,TRUE为有序因子,FALSE为无序因子。>#生成水平数为3,每个水平重复2次的因子序列>gl(3,2)[1]112233Levels:123>#生成水平为“TRUE”和“FALSE”,每个水平重复3次的因子序列>gl(2,3,labels=c("TRUE","FALSE"))[1]TRUETRUETRUEFALSEFALSEFALSELevels:TRUEFALSE>#生成水平数为2,序列长度为10的因子序列>gl(2,1,10)[1]1212121212Levels:12>#生成水平数为3,每个水平重复2次的有序因子序列>gl(3,2,ordered=TRUE)[1]112233Levels:1<2<32.因子的存储方式R语言中,因子是以整数型向量存储的,每个因子水平对应一个整数型的数。对字符型向量创建的因子,会按照字母顺序排序,再对应到整数型向量。>status<-c("Poor","Improved","Excellent","Poor")>class(status)[1]"character">status.factor<-factor(status,ordered=TRUE)>status.factor[1]PoorImprovedExcellentPoorLevels:Excellent<Improved<Poor>class(status.factor)[1]"ordered""factor">storage.mode(status.factor)[1]"integer">as.numeric(status.factor)[1]3213>levels(status.factor)[1]"Excellent""Improved""Poor"六、列表列表就是一些对象或成分的有序集合(组合方式更自由)。列表允许整合若干对象到单个对象名下,例如,某个列表可能是若干向量、矩阵、数据框,甚至是其它列表的组合。一般在使用R语言进行数据分析和挖掘的过程中,向量和数据框是用的最多的,列表常在存储较复杂的数据时作为数据对象类型。列表提供了一种简单的方式来组织和重新调用不相干的信息。另外,许多R函数的运行结果都是用列表形式返回的。1.创建列表用函数list(),基本格式为:list(object1,object2,...)其中,object对象可以是任何类型。若同时为列表中的对象命名:list(name1=object1,name2=object2,...)>data<-list(a=c(1,2,3,4),b=c("one","two","three"),c=c(TRUE,FALSE),d=(1+2i))>data$a[1]1234$b[1]"one""two""three"$c[1]TRUEFALSE$d[1]1+2i>#查看列表的数据结构>summary(data)LengthClassModea4-none-numericb3-none-characterc2-none-logicald1-none-complex>#创建一个内含多种结构的列表>g<-"MyList">h<-c(25,26,18,39)>j<-matrix(1:10,nrow=5)>mylist<-list(title=g,ages=h,j)>mylist$title[1]"MyList"$ages[1]25261839[[3]][,1][,2][1,]16[2,]27[3,]38[4,]49[5,]510>summary(mylist)LengthClassModetitle1-none-characterages4-none-numer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论