美文网首页
R语言基础教程 | 数据结构—列表

R语言基础教程 | 数据结构—列表

作者: 生信师姐 | 来源:发表于2021-06-15 07:46 被阅读0次

列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据类型可以不同,每个元素的长度可以不同,是R中最灵活的数据类型。列表项可以是列表类型,因此,列表被认为是递归变量,与之相对,向量,数组,矩阵,数据框被认为是原子变量。

列表由list()函数创建,每个参数使用逗号分割,用于指定列表项的内容,列表中的元素数量不限,类型不限。列表项的名称是可选的,可以创建无名的列表项;列表的每一个item,都可以显示命名,例如,name1=item1, name2=item2。

list([name1=]item1, [name2=]item2, ...)

1.创建列表

例如,下面的脚本创建一个列表,该列表共有2个item,第一个item是names 学生姓名,第二个item是ID,表示学生的学号。names和ID叫标签

> students = list( names = c("Tom","Ammy","BioInfoCloud"),ID = c(1,2,3))
> students
$names
[1] "Tom"          "Ammy"         "BioInfoCloud"

$ID
[1] 1 2 3

# 创建列表是可以不创建标签。
> student = list( c("Tom","Ammy","BioInfoCloud"),c(1,2,3))
> student
[[1]]
[1] "Tom"          "Ammy"         "BioInfoCloud"

[[2]]
[1] 1 2 3

2.访问列表中组件

访问列表中组件的方法,用$符号或者[[]]

> students$names
[1] "Tom"          "Ammy"         "BioInfoCloud"
> students[[1]]
[1] "Tom"          "Ammy"         "BioInfoCloud"
> students[["ID"]]
[1] 1 2 3
>

[[]]一次只能提取一个组件,返回的类型是组件的类型,不是列表。

> class(students[["ID"]]) # 判断类型
[1] "numeric"

3.增加或删除列表中的元素

> students$country = c("English","America","China")
> students
$names
[1] "Tom"          "Ammy"         "BioInfoCloud"

$ID
[1] 1 2 3

$country
[1] "English" "America" "China"  




> students$ID = NULL
> students
$names
[1] "Tom"          "Ammy"         "BioInfoCloud"

$country
[1] "English" "America" "China"  

4.访问列表元素和值

如果列表定义了标签,可以用names()函数获取。

> names(students)
[1] "names"   "country"
>

可以用unlist()函数获取值,unlist()返回值就是一个向量,向量名来自标签。

> unlist(students)
        names1         names2         names3       country1       country2 
         "Tom"         "Ammy" "BioInfoCloud"      "English"      "America" 
      country3 
       "China" 

5.递归型列表

列表是可以递归的,意思是列表的组件可以是列表。

> b = list(u= 5,v = 12)
> c = list(w=13)
> a = list(b,c)
> a
[[1]]
[[1]]$u
[1] 5

[[1]]$v
[1] 12


[[2]]
[[2]]$w
[1] 13

> length(a)
[1] 2
> 

这段代码生成一个包含2个组件的列表,每个组件本身也是列表,拼接函数c()有一个可选参数recursive,决定在拼接列表时是否把原列表"压平",就是把所有组件元素都提取出来,组合成一个向量。

> c(list(a=1,b=2,c=list(d=5,e=9)),recursive = T)
  a   b c.d c.e 
  1   2   5   9 

相关文章

  • R语言基础教程 | 数据结构—列表

    列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据...

  • R语言基础之数据结构

    基础数据结构 R语言中主要有向量(vector),矩阵(matrix),列表(list),数据框(data fra...

  • 《学习小组Day5笔记--寒鹤》

    R语言之数据结构 今天的学习内容是R语言的数据结构。R语言的数据结构主要有向量(vector),矩阵(matrix...

  • R语言编程基础第一篇:语法基础

    R语言编程基础第一篇:语法基础,已经更新结束,下面是文章目录: R语言入门资料 R语言基础教程——第1章:初识R ...

  • 学习小组Day5笔记--小明

    R语言数据结构 数据类型 -向量-矩阵-数组-数据框-列表 知识点,与python相比 1.注意赋值方式2.r中同...

  • R和Python数据结构对比

    本文内容概要: R语言数据结构及实例操作 Python语言数据结构及实例操作 R语言数据结构及实例解析 接下开始学...

  • R语言学习笔记——列表

    列表是R语言数据结构中最复杂的一种。列表是各种对象的有序集合,向量、矩阵、数据框等都可以包含进来。 如: > a ...

  • R 语言-列表

    列表顾名思义就是用来存储很多内容的一个集合,在其它编程语言中,列表一般和数组是等同的,但是在 R 语言中,列表却是...

  • R语言 列表

    列表是R语言对象,它包含不同类型的元素,如数字,字符串,向量和其中的另一个列表。 列表还可以包含矩阵或函数作为其元...

  • R语言——列表

    前一段工作太忙了,终于又有时间来继续学习了 列表就是一些对象(或成分,component)的有序集合。列表允许整合...

网友评论

      本文标题:R语言基础教程 | 数据结构—列表

      本文链接:https://www.haomeiwen.com/subject/emqeeltx.html