列表(list)是R语言的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许整合若干(可能无关的)对象到单个对象名下。

例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。同一个列表中的向量、矩阵和数组的元素必须是同一类型数据。一个数据对象若包含不同的数据类型,则其可以采用列表这种形式

R语言 列表

  • 列表是可以包含多个不同数据元素的数据对象
  • 可以包含向量、矩阵、数据框,甚至是列表
  • 列表的各个元素称为列表项,列表项的数据类型可以不同,长度可以不同


列表创建

list函数可以用于创建列表对象

list ( object1, object2, …… )

R语言 列表

  • > (my.list <- list(stud.id = 34453,
  • +                stud.name = “张三”,
  • +                stud.marks = c(14.3,12,15,19)
  • > $stud.id
  • > [1] 34453
  • > $stud.name
  • > [1] "张三"
  • > $stud.marks
  • > [1] 14.3 12.0 15.0 19.0

对象my.list由三个成分组成:第一个是名称为stud.id的数值,第二个是名称为stud.name的字符串,第三个是名称为stud.marks的数值向量


列表索引

语法 描述
x[n] 列表显示元素n
x[[n]] 列表的第n个元素
x[[“name”]] 名为“name”的元素
x$name 同上


列表编辑

列表的编辑与向量的编辑类似,可使用c函数进行合并

可对列表进行合并操作,并可将列表转换为向量,与其他数据结构不同的是,把列表转换为向量时需要用到unlist函数,格式为unlist(x)

R语言 列表

  • > #示例列表
  • > data <- list(a=c(11,22,33,44),b=matrix(1:10,nrow=2),c=“one,two,three”,d=c(FALSE,TRUE))
  • > data$a <- NULL #删除名称为a的对象
  • > #增加名称为e的对象
  • > data1 <- c(data,list(e=c(5,6,7)))
  • > data2 <- c(data,e=list(c(5,6,7))) #与上面等价
  • > unlist(data1) #列表转换为向量
  • > #列表合并
  • > data2 <- list(1,2,3,4) #创建一个新列表
  • > c(data,data2) #列表合并

相关文章: