R语言列表
提示
- 列表的创建和特点:在 R 中,列表由
list()
函数创建,可包含相同或不同类型的数据。 - 访问和修改列表元素:使用索引号访问列表中的元素,可以通过重新分配新值来更改列表元素。
- 添加、移除元素和遍历列表:使用
append()
函数向列表添加元素,通过指定负索引来移除元素,可用循环遍历列表中的每个元素。
列表是包含相似或不同类型数据的集合。
在 R 中,我们使用 list()
函数来创建列表。例如,
# 包含相同类型数据的列表
list1 <- list(24, 29, 32, 34)
# 包含不同类型数据的列表
list2 <- list("Ranjy", 38, TRUE)
这里,
list1
- 整数列表list2
- 包含字符串、整数和布尔值的列表
在 R 中访问列表元素
在 R 中,列表中的每个元素都与一个数字相关联。这个数字被称为列表索引。
我们可以使用索引号 (1, 2, 3 …
) 来访问列表中的元素。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# 访问第一个项目
print(list1[1]) # 24
# 访问第四个项目
print(list1[4]) # Nepal
在上面的例子中,我们创建了一个名为 list1
的列表。
这里,我们使用了向量索引来访问向量元素
list1[1]
- 访问第一个元素 24list1[4]
- 访问第三个元素"Nepal"
注意:在 R 中,列表索引总是从 1 开始。因此,列表的第一个元素位于索引 1,第二个元素位于索引 2,以此类推。
在 R 中修改列表元素
要更改列表元素,我们可以简单地将新值重新分配给特定索引。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# 改变索引 2 处的元素
list1[2] <- "Cathy"
# 打印更新后的列表
print(list1)
输出
[[1]]
[1] 24
[[2]]
[1] "Cathy"
[[3]]
[1] 5.4
[[4]]
[1] "Nepal"
这里,我们将新值重新分配给了索引 2,将列表元素从 "Sabby"
更改为 "Cathy"
。
向 R 列表中添加项目
我们使用 append()
函数在列表末尾添加项目。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# 使用 append() 函数
append(list1, 3.14)
输出
[[1]]
[1] 24
[[2]]
[1] "Sabby"
[[3]]
[1] 5.4
[[4]]
[1] "Nepal"
[[5]]
[1] 3.14
在上面的例子中,我们创建了一个名为 list1
的列表。注意这一行,
append(list1, 3.14)
这里,append()
函数在列表的末尾添加了 3.14。
在 R 中从列表中移除元素
R 允许我们从列表中移除元素。我们首先使用列表索引访问元素,并添加负号 -
来表示我们想要删除该项。例如,
[-1]
- 移除第 1 个项目[-2]
- 移除第 2 个项目,以此类推。
list1 <- list(24, "Sabby", 5.4, "Nepal")
# 移除第 4 个元素
print(list1[-4]) # Nepal
输出
[[1]]
[1] "Sabby"
[[2]]
[1] 5.4
[[3]]
[1] "Nepal"
这里,list[-4]
移除了 list1
的第 4 个项目。
R 列表的长度
在 R 中,我们可以使用 length()
函数来找出列表中的元素数量。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# 使用 length() 找出 list1 中的总元素数量
cat("总元素数量:", length(list1))
输出
总元素数量:4
这里,我们使用了 length()
函数来找出 list1
的长度。由于 list1
中有 4 个元素,所以 length()
返回 4。
遍历列表
在 R 中,我们也可以使用 for 循环 遍历列表中的每个元素。例如,
items <- list(24, "Sabby", 5.4, "Nepal")
# 遍历 numbers 的每个元素
for (item in items) {
print(item)
}
输出
[1] 24
[1] "Sabby"
[1] 5.4
[1] "Nepal"
检查 R 列表中是否存在元素
在 R 中,我们使用 %in%
运算符来检查指定的元素是否存在于列表中,并返回布尔值。
TRUE
- 如果列表中存在指定元素FALSE
- 如果列表中不存在指定元素
例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
"Sabby" %in% list1 # TRUE
"Kinsley" %in% list1 # FALSE
输出
TRUE
FALSE
这里,
"Larry"
存在于list1
中,所以方法返回TRUE
"Kinsley"
不存在于list1
中,所以方法返回FALSE