R语言列表2021.1.28
2021-01-28 本文已影响0人
R语言_茶味先生
列表
列表顾名思义就是用来存储很多内容的一个集合,在其他编程语言中,列表一般和数组是等同的,但是在R语言中,列表却是R中最复杂的一种数据结构,也是非常重要的一种数据结构。列表就是一些对象的有序集合。列表中可以存储若干向量、矩阵、数据框,字符串甚至其他列表的组合。
——引用自B站基因学苑up主教学视频中的一段文字
一、向量与列表的比较
1、在模式上和向量类似,都是一维数据集合。
2、向量只能存储一种数据类型,列表中的对象可以是R中的任何数据结构,甚至列表本身。
二、列表的创建
先对列表元素进行赋值,再用list()语句进行赋值
a<-1:20
b<-matrix(1:20,4)
c<-mtcars
d<-"this is a test list" ##对列表元素赋值
mlist<-list(a,b,c,d) ##将列表组合后赋值给一个新的列表
mlist<-list(first=a,second=b,third=c,forth=d) ##对列表的每一列取字段名称
三、列表的访问
列表访问子集列表有三种方法,索引访问,名字访问和$字符访问,而访问输出对应子集数据类型的数据则需要双中括号访问,即[[ ]]
索引访问
访问列表中单个集合,例如
mlist[1]
访问列表中多个集合,例如
mlist[c(1,4)]
名字访问
字段要加引号,访问列表中单个集合,例如
mlist["first"]
访问列表中多个集合,例如
mlist[c("first","third")]
符号访问
用$符号,例如访问字段值为first的集合,很高效,推荐使用!
mlist$first
双中括号访问
mlist[[1]]
四、列表添加子集
用双中括号给列表添加子集
mlist[[5]]<-iris
单中括号与双中括号的用法区别
命名新元素有两种方法:第一种是重新创建+命名:mlist<-list("name1"=a,"name2"=b)的形式。第二种重命名所有数据集
五、删除列表子集
方法有两种:负索引和赋空值
1.负索引删除子集
mlist[[-5]]
2.赋空值删除子集
mlist[[5]]<-NULL