R 列表

17 Mar 2025 | 5 分钟阅读

在 R 中,列表是第二种类型的向量。 列表是 R 的对象,包含不同类型的元素,例如数字、向量、字符串和另一个列表。 它也可以包含一个函数或一个矩阵作为其元素。 列表是一种具有混合数据类型组件的数据结构。 我们可以说,列表是一个包含其他对象的通用向量。

示例

输出

[[1]]
[1] 3 4 5 6
[[2]]
[1] "shubham" "nishka"  "gunjan"  "sumit"
[[3]]
[1]  TRUE FALSE FALSE  TRUE

R Lists

列表创建

创建列表的过程与向量相同。 在 R 中,向量是借助 c() 函数创建的。 类似于 c() 函数,还有另一个函数,即 list(),用于在 R 中创建列表。 列表避免了向量的缺点,即数据类型。 我们可以在列表中添加不同数据类型的元素。

语法

示例 1: 创建具有相同数据类型的列表

输出

[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3

[[1]]
[1] "Shubham"
[[2]]
[1] "Arpita"
[[3]]
[1] "Vaishali"

[[1]]
[1] 1 2 3

[[1]]
[1] TRUE
[[2]]
[1] FALSE
[[3]]
[1] TRUE

示例 2: 创建具有不同数据类型的列表

在上面的示例中,list 函数将创建一个包含字符、逻辑、数值和向量元素的列表。 它将给出以下输出

输出

[[1]]
[1] "Shubham"
[[2]]
[1] "Arpita"
[[3]]
[1] 1 2 3 4 5
[[4]]
[1] TRUE
[[5]]
[1] FALSE
[[6]]
[1] 22.5
[[7]]
[1] 12

为列表元素命名

R 提供了一种非常简单的方法来访问元素,即通过为列表的每个元素命名。 通过为元素分配名称,我们可以轻松访问元素。 只有三个步骤可以打印与名称对应的列表数据

  1. 创建一个列表。
  2. 借助 names() 函数为列表元素分配名称。
  3. 打印列表数据。

让我们看一个例子来了解如何为列表元素命名。

示例

输出

$Students
[1] "Shubham" "Nishka"  "Gunjan"

$Marks
     [,1] [,2] [,3]
[1,]   40   60   90
[2,]   80   70   80

$Course
$Course[[1]]
[1] "BCA"

$Course[[2]]
[1] "MCA"

$Course[[3]]
[1] "B. tech."

访问列表元素

R 提供了两种方式来访问列表的元素。 第一种是与向量相同方式执行的索引方法。 在第二种方法中,我们可以借助名称访问列表的元素。 这只有在命名列表中才有可能;如果列表是普通的,我们无法使用名称访问列表的元素。

R Lists

让我们看一个这两种方法的示例,以了解它们如何在列表中用于访问元素。

示例 1: 使用索引访问元素

输出

[[1]]
[1] "Shubham" "Arpita"  "Nishka"

[[1]]
[[1]][[1]]
[1] "BCA"

[[1]][[2]]
[1] "MCA"

[[1]][[3]]
[1] "B.tech"

示例 2: 使用名称访问元素

输出

$Student
[1] "Shubham" "Arpita"  "Nishka"

        [,1] [,2] [,3]
[1,]   40   60   90
[2,]   80   70   80

$Student
[1] "Shubham" "Arpita"  "Nishka"

$Marks
     [,1] [,2] [,3]
[1,]   40   60   90
[2,]   80   70   80

$Course
$Course[[1]]
[1] "BCA"
$Course[[2]]
[1] "MCA"
$Course[[3]]
[1] "B. tech."

列表元素的操纵

R 允许我们在列表中添加、删除或更新元素。 我们可以从任何地方更新列表的元素,但元素只能在列表的末尾添加或删除。 要从指定的索引中删除一个元素,我们将为其分配一个 null 值。 我们可以通过用新值覆盖来更新列表的元素。 让我们看一个例子来了解我们如何添加、删除或更新列表中的元素。

示例

输出

[[1]]
[1] "Moradabad"

$<NA>
NULL

$Course
[1] "Masters of computer applications"

将列表转换为向量

列表有一个缺点,即我们无法对列表元素执行所有算术运算。 为了消除这个缺点,R 提供了 unlist() 函数。 此函数将列表转换为向量。 在某些情况下,需要将列表转换为向量,以便我们可以将向量的元素用于进一步的操作。

unlist() 函数将列表作为参数并更改为向量。 让我们看一个例子来了解如何在 R 中使用 unlist() 函数。

示例

输出

[[1]]
[1] 1 2 3 4 5

[[1]]
[1] 10 11 12 13 14

[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19

合并列表

R 允许我们将一个或多个列表合并为一个列表。 合并也借助 list() 函数完成。 为了合并列表,我们必须将所有列表作为参数传递给 list 函数,它将返回一个包含列表中所有元素的列表。 让我们看一个例子来了解合并过程是如何完成的。

示例

输出

[[1]]
[[1]][[1]]
[1] 2

[[1]][[2]]
[1] 4

[[1]][[3]]
[1] 6

[[1]][[4]]
[1] 8

[[1]][[5]]
[1] 10


[[2]]
[[2]][[1]]
[1] 1

[[2]][[2]]
[1] 3

[[2]][[3]]
[1] 5

[[2]][[4]]
[1] 7

[[2]][[5]]
[1] 9

下一主题R 数组