在 R 中使用 lapply函数访问列表的索引名称
R 编程语言中的 lapply() 方法返回一个与提供的向量长度相同的列表,其中的每个元素都是将 FUN 应用于向量的相应元素的结果。
Syntax:
lapply (X, FUN, …)
Parameter :
X – an atomic vector or list to apply the function on
FUN – the function to be applied over each element of X.
方法一:使用seq_along()
R 中的 seq_along() 方法用于生成长度等于传递参数的输入长度的元素序列。生成的序列始终以从 1 开始的整数值开始。
Syntax:
seq_along (X)
Parameter :
X – passed argument
seq_along() 生成的序列作为函数lapply() 的第一个参数传递。函数FUN 包括分配给列表的不同组件的名称的串联,可以使用索引和列表名称以及使用逗号分隔符附加在一起的组件向量或列表值来访问这些名称。可以使用以下语法访问指定列表的索引名称:
names (list-obj)[[indx-cntr]]
可以使用以下语法访问元素值:
list-obj [[indx-cntr]]
例子:
R
# declaring and creating a list
lst <- list(ele1 = 1:5,
ele2 = c(FALSE,TRUE),
ele3 = LETTERS[4:9])
# printing list contents
print ("List contents : ")
print (lst)
# accessing elements
print ("Accessing elements : ")
lapply(seq_along(lst),
function(i) paste(names(lst)[[i]],
"->",
paste(lst[[i]], collapse = ", ")))
R
# declaring and creating a list
lst <- list(ele1 = 1:5,
ele2 = c(FALSE,TRUE),
ele3 = LETTERS[4:9])
# printing list contents
print ("List contents : ")
print (lst)
# accessing elements
print ("Accessing elements : ")
lapply(seq(lst),
function(i) paste(names(lst)[[i]], "->",
paste(lst[[i]], collapse = ", ")))
输出
[1] "List contents : "
$ele1
[1] 1 2 3 4 5
$ele2
[1] FALSE TRUE
$ele3
[1] "D" "E" "F" "G" "H" "I"
[1] "Accessing elements : "
[[1]]
[1] "ele1 -> 1, 2, 3, 4, 5"
[[2]]
[1] "ele2 -> FALSE, TRUE"
[[3]]
[1] "ele3 -> D, E, F, G, H, I"
方法 2:使用 seq()
seq() 方法也可用于单独遍历列表及其组件。该方法的工作原理类似于 seq_along() 方法。
R 中的seq()函数用于在 Vector 中创建元素序列。它将长度和值之间的差异作为可选参数。
Syntax:
seq(from, to, by, length.out)
Parameters:
from: Starting element of the sequence
to: Ending element of the sequence
by: Difference between the elements
length.out: Maximum length of the vector
例子:
电阻
# declaring and creating a list
lst <- list(ele1 = 1:5,
ele2 = c(FALSE,TRUE),
ele3 = LETTERS[4:9])
# printing list contents
print ("List contents : ")
print (lst)
# accessing elements
print ("Accessing elements : ")
lapply(seq(lst),
function(i) paste(names(lst)[[i]], "->",
paste(lst[[i]], collapse = ", ")))
输出
[1] "List contents : "
$ele1
[1] 1 2 3 4 5
$ele2
[1] FALSE TRUE
$ele3
[1] "D" "E" "F" "G" "H" "I"
[1] "Accessing elements : "
[[1]]
[1] "ele1 -> 1, 2, 3, 4, 5"
[[2]]
[1] "ele2 -> FALSE, TRUE"
[[3]]
[1] "ele3 -> D, E, F, G, H, I"