R 的 list 列表详解|学习笔记

简介: 快速学习 R 的 list 列表详解。

开发者学堂课程【R 语言编程基础R 的 list 列表详解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/564/detail/7718


R 的 list 列表详解

 

list 列表详解

1、list 列表数据类型在R中有非常重要的地位很多 R 中的函数返回值也是 list 列表的形式列表的成分和向量的元素它们是不同的它们不一定是同一种类型或者它们的模式和长度可以是不一样的列表的成分通常是有一个编号并且它有一个名称的属性

2、举例说明列表其他的使用方法打开 R,创建列表第一个成分是学生的 ID赋值为1234,学生的分数学习成绩是向量还有各科的成绩这个列表由三个成分组成第一个是名称为6个 ID 的数值第二个是字符串第三个是数值向量

mylist <- list (stud. id=1234,

+stud. name= "Tom"

+stud.marks=c(12,3,14,25,19) )

输入 mylist 查看列表结构的样子涵盖了三个主要的对象成分

$stud. id

[1] 1234

$stud. name

[1] "Tom"

$stud . marks

[1 ]12 3 14 25 19

(1)可以通过双括号的形式访问列表的成分也就是索引的方式得到列表的形式比如想要知道刚刚建的列表的第一个元素它的一个值通过双括号加上值获取第一个成分的数据获得了学生的 ID1234。

Mylist[[1]]

[1] 1234

(2)也可以获得三个成分是学生考试分数的向量

Mylist[[3]]

[1] 12 3 14 25 19

(3)使用双括号得到列表的元素如果使用单括号得到的是1234,但是展现形式和双括号不一样第一个方式使用双括号是提到列表的第一个组建的值也就是学生的 ID1234,用单括号取1实际上是获取列表 Mylist 获取的它第一个成分构成的子列表这个自列表就包括了列表的名称列表名称下面的数值也可以通过函数 mode 看一下modemylist[[1]]),双括号得到的是学生的 ID结构形式是数值型‘’numeric‘’单括号实际上是原来列表的子列表modemylist[1]),这个形式就是 list 形式‘’list‘’

(4)列表还可以通过$符号后面加成分名称可以取到成分下面的数值

mylist$stud. Id

[1] 1234

(5)列表成分的名称实际上也是列表的属性它可以向向量的元素名操作比如取到各个成分的名称取到 IDnamemarks

namesmylist

[1] ‘’stud. Id‘’  ‘’stud.name‘’  ‘’stud.marks‘’

(6)还可以对列表的成分名称进行更改这样操作的结果把原来的stud. Idstud.namestud.marks 改成 idnamemarks

names (mylist) <- c("id", "name ","marks")

mylist

$id

[1 ] 1234

$name

[1] "Tom"

$marks

[1] 12 3 14 25 19

可以看到名称已经做了改变

3、经常使用列表会碰到一种情况就是对列表进行扩充增加新的元素如何增加新的元素添加列表比如对 mylist 进行扩展$符号增加学生父母的名字父亲的名字和母亲的名字

> mylist$parents <- c ("Mna", "Jutice")

> mylist

$id

[1] 1234

$name

[1] "Tom'

$marks

[1] 12 3 14 25 19

$parents

[1] "Mna " "Jutice "

这样就多了一个 parents 的成分并且给这个成分赋值

4、提取列表的长度在便利列表各个成分时会写一个循环语句在做循环语句之前就要得到它的长度决定循环的次数

lengthmylist

[1] 4

5、除了对列表进行扩充外可能还需要对列表进行删减删掉其中的某一个成分比如删除其中第四个成分mylist列表第四个成分就是 parents使用命令后mylist 会变成三个成分第四个成分被删除掉

mylist<- mylist[-4]

mylist

$id

[1] 1234

$name

[1] "Tom"

$marks

[1] 12 3 14 25 19

6、在对列表的实际操作中有两个列表并且需要把两个列表拼接到一起可以直接使用 c 函数进行实现重新创建一个列表

> other <- list(age=19, sex="male")

> other

$age

[1] 19

$sex

[1] "male"

把新创建的列表和 mylist 列表进行合并可以看到 mylist,other 两个列表合并在一起

> lst <- c (mylist, other)

> lst

$id

[1] 1234

$name

[1] "Tom"

$marks

[1] 12 3 14 25 19

$age

[1] 19

$sex

[1]

"male"

7、在使用 R 的过程中通常会遇到在创建一个列表之后很有可能在后续的处理中希望把列表的数据类型转化成向量的元素当想去便利列表中所有元素时如果使用列表的模式循环就会很复杂如果转换成向量的形式比如100个元素只需要循环1100即可而如果是列表首先需要考虑第一个成分有几个元素循环一遍遇到第二个成分时又需要判断第二个成分有多少个元素再进行循环便利所以这样会便利的访问会变的复杂,因此这时会用到unlist 函数unlist 就是把列表中所有的元素转换成向量的函数用 unlist 函数对1st 进行转换

> unlist (1st)

Id name marks1 marks2 marks3 marks4 marks5 age sex

"1234 " "Tom" "12" "3" "14" "25" "19" "19" "male"

相当于把 list 原来列表中所有的元素都转换成向量只不过这个向量和前面的向量不一样的地方是这个向量每一个元素都有一个名称第一个向量元素名称是 id值是1234,转化过程中把原来的数值强行转化成字符串的形式是因为向量只能存放一种数据类型

相关文章
|
7月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
408 1
Java 中数组Array和列表List的转换
|
10月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
189 9
|
10月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
249 14
|
10月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
699 10
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
143 1
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
11月前
|
索引 Python
List(列表)
List(列表)。
189 4
|
11月前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
921 2
|
12月前
|
NoSQL 关系型数据库 MySQL
Redis 列表(List)
10月更文挑战第16天
147 2
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)

热门文章

最新文章