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