在R语言中,向量、矩阵和数组的元素要求必须是同一类型的数据。在使用过程中,可能一个数据对象需要保存不同类型的数据,则可以使用列表(list)来实现。
列表是对象的集合,可以包含向量、矩阵、数组,数据框,甚至是另外一个列表,且在列表中要求每一个成分都要有一个名称。
列表中的对象又称为它的分量(components)。
1、创建列表
在R语言中可以使用list()函数来创建列表,其语法格式为:
list(name1=object1, name2 = object2,...)
下面举几个例子来说明R语言中创建列表的方法:
list1 <- list(studentName=c("小明","小花","小芳","小刚"),major=c("信息管理","财务管理","材料成型"), score=matrix(c(80,90,75,85,92,83,73,70,69,88,81,89),nrow=3))
2、列表的索引
在R语言中, 访问列表中的元素可以使用双重方括号来指明成分或使用成分的名称及位置来访问。
list1[1] #访问列表中的第1个成分,使用这种方法,返回的结果仍为一个列表
list1[[1]] #访问列表中的第1个成分的元素值,这次仅是元素值,是向量,不再是列表
list1[1:2] #访问列表中的第1个到第2个成分
list1[-1] #排除第一个成分
执行结果情况课如下:
list1$studentName #访问成分名称为studentName的元素值
list1["major"] #访问成分名称为major的成分,其结果仍为一个列表
list1[["major"]] #访问成分名称为major的元素值
list1[c(1,3)] #访问给定的第1和第3个成分
本部分的执行结果如下:
list1[[1]][1] #访问第一个成分中的第一个值
list1$studentName[1] #访问第一个成分中的第一个值
list1[["studentName"]][1] #访问第一个成分中的第一个值
本部分执行代码如下:
3、列表的编辑
(1)修改某个成分的元素值
list1[[1]][1] = '黄晓明'
list1$studentName[2] = '王花花'
list1[["studentName"]][3] = '袁芳'
本部分代码执行情况如下:
(2)修改某一成分的所有值
list1$major = c("信息管理","营销管理","工商管理","会计学")
list1[[2]] = c("信息管理","营销管理","工商管理","会计学")
(3)添加一个成分
list1$grade<-c(3, 4 ,2 ,1) #实际上,若没有这一列就直接添加
list1<-c(list1,birth=list(c("1997-04-01","1998-10-20","1998-07-20","1999-11-20")))#新增birth成分
(4)删除某一个成分
list1[4] = NULL
list1$grade = NULL
本部分(完)
新闻热点
疑难解答