列表是一种特殊类型的向量,其中每个元素可以是不同类型的,甚至可以包含其他列表。列表也被称为通用向量,它是一种非常灵活的数据结构。多种类型数据列表如图3-4所示。
图3-4 多种类型数据列表
使用list()函数可以创建一个新的列表,以下是创建列表的示例。
上述示例代码解释如下。
代码第①行创建一个空列表。
代码第②行创建一个包含多个元素的列表 my_list,其中包括一个字符向量("apple")、一个整数(2)、一个逻辑值(TRUE),以及一个数值向量(c(1, 2, 3))。
代码第③行创建一个带有名称的列表 my_list。每个元素都有一个名称,其中fruit、quantity和numbers是元素的名称,这使得访问元素更容易和清晰。
代码第④行创建了一个嵌套的列表 nested_list,包含多个命名元素。其中一个元素是名为details的子列表,它本身包含了quantity 和in_stock 两个元素。
上述示例代码运行结果如下。
在R语言中可以使用$符号或[[ ]]符号来访问列表元素,这与访问向量元素的方式非常相似。这两种方法都提供了方便的方式来获取列表中的特定元素,具体取决于元素是否有名称。
list$name:通过元素的名称来访问列表中的元素。这对于具有命名元素的列表非常方便。例如,my_list$fruit 用于访问名为fruit的元素的值。
list[[index]]或list[["name"]]:通过元素的索引或名称来访问列表中的元素。这对于不具有命名元素或需要根据变量来访问元素的情况非常有用。例如,my_list[[1]] 或 my_list[["fruit"]] 用于访问第一个元素的值或名称为fruit的元素的值。
这些访问方法使得在R语言中处理列表变得非常灵活和方便,可以根据元素的结构和需求选择合适的方式来获取元素的值。
访问列表元素示例代码如下。
上述示例代码运行结果如下。
要修改列表中的元素,我们也可以使用$符号或[[ ]]符号来访问元素,然后对其进行赋值以更新值。以下是修改列表元素的示例代码。
上述示例代码运行结果如下。
向量长度是固定的,而列表的长度是可变的,可以根据需要动态增加或减少元素。这种灵活性使得列表在处理各种不同类型的数据和数据结构时非常有用。当我们在列表中添加新元素或从列表中删除元素时,其长度会相应改变。
向列表中添加元素的方法如下。
(1)使用$符号或[[ ]]符号来添加新的命名元素或非命名元素。
(2)使用append()函数来添加元素。
向列表中添加元素的示例代码如下。
上述示例代码运行结果如下。
我们可以在列表中添加元素,也可以删除列表中的元素。删除列表中的元素的方法如下。
(1)使用$符号或[[ ]]符号来删除命名元素或非命名元素。
(2)使用[-index]运算符可以删除指定索引的元素,其中负号(-)表示删除的意思,即删除指定索引位置的元素。
删除列表中的元素的示例代码如下。
上述示例代码运行结果如下。