列表是相似或不同类型数据的集合。
在 R 中,我们使用 list()
函数来创建一个列表。例如,
# list with similar type of data
list1 <- list(24, 29, 32, 34)
# list with different type of data
list2 <- list("Ranjy", 38, TRUE)
这里,
- list1 - 整数列表
- list2 - 包含字符串、整数和布尔值的列表
在 R 中访问列表元素
在 R 中,列表中的每个元素都与一个数字相关联。该数字称为列表索引。
我们可以使用索引号 (1, 2, 3 …) 访问列表元素。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# access 1st item
print(list1[1]) # 24
# access 4th item
print(list1[4]) # Nepal
在上面的示例中,我们创建了一个名为 list1 的列表。
在这里,我们使用了向量索引来访问向量元素
list1[1]
- 访问第一个元素 24list1[4]
- 访问第三个元素"Nepal"
注意:在 R 中,列表索引总是从 1 开始。因此,列表的第一个元素位于索引 1,第二个元素位于索引 2,依此类推。
在 R 中修改列表元素
要更改列表元素,我们只需将新值重新分配给特定索引。例如,
list1 <- list(24, "Sabby", 5.4, "Nepal")
# change element at index 2
list1[2] <- "Cathy"
# print updated list
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")
# using append() function
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")
# remove 4th item
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")
# find total elements in list1 using length()
cat("Total Elements:", length(list1))
输出
Total Elements: 4
在这里,我们使用了 length()
函数来查找 list1 的长度。由于 list1 中有 4 个元素,因此 length()
返回 4。
遍历列表
在 R 中,我们还可以使用 for 循环遍历列表的每个元素。例如,
items <- list(24, "Sabby", 5.4, "Nepal")
# iterate through each elements of 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