R语言中的列表与R语言中的向量、数组和矩阵不同,它的每个分量的数据类型可以是不同的。列表是对象的集合,可以包含向量、矩阵、数组,数据框,甚至是另外一个列表,且在列表中要求每一个成分都要有一个名称。列表中的对象又称为它的分量(components)。
创建列表
在R语言中可以使用list()函数来创建列表,其语法格式为:
list(name1=object1, name2 = object2,...)
下面是创建一个列表的例子:
list1 <- list(studentName = c("小明", "小花", "小芳", "小刚"), major = c("信息管理", "财务管理", "材料成型"), score = matrix(c(80, 90, 75, 85, 92, 83, 73, 70, 69, 88, 81, 89), nrow=3))
这里创建了一个列表,它包含3个分量:学生姓名studentName,主修专业major,3个科目的考试分数score。
在R中的运行结果如下图所示:
从输出结果来看,R分别以3个组分的形式输出:$studentName,$major,$score。
列表的索引
使用列表的索引形式可以对列表中的元素进行访问,编辑或删除。
访问列表中的元素可以使用双重方括号来指明成分或使用成分的名称及位置来访问。
下面就一些具体的例子来说明:
(1)list1[1] #访问列表中的第1个成分,使用这种方法,返回的结果仍为一个列表
(2)list1[[1]] #访问列表中的第1个成分的元素值,这次仅是元素值,是向量,不再是列表
(3)list1[1:2] #访问列表中的第1个到第2个成分
(4)list1[-1] #排除第一个成分
执行结果情况如下:
(5)list1[c(1, 3)] #访问给定的第1和第3个成分
(6)list1$studentName #访问成分名称为studentName的元素值
(7)list1["major"] #访问成分名称为major的成分,其结果仍为一个列表
(8)list1[["major"]] #访问成分名称为major的元素值
(9)list1[[1]][1] #访问第一个成分中的第一个值
(10)list1$studentName[1] #访问第一个成分中的第一个值
(11)list1[["studentName"]][1] #访问第一个成分中的第一个值
本部分的结果如下图所示:
编辑列表
(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 #删除第4个成分
或者使用下面的形式:
list1$grade = NULL
本部分的执行结果如下图所示:
- 本文固定链接: https://maimengkong.com/learn/1005.html
- 转载请注明: : 萌小白 2022年6月21日 于 卖萌控的博客 发表
- 百度已收录