R语言 使用lapply函数访问列表的索引名
R编程语言中的lapply()方法返回一个与提供的向量长度相同的列表,其中的每个元素都是对向量的相应元素应用FUN的结果。
语法 。
lapply (X, FUN, …)
参数 :
X – 一个要应用函数的原子向量或列表
FUN – 要在X的每个元素上应用的函数。
方法1:使用seq_along()
R中的seq_along()方法是用来生成一个长度相当于输入参数长度的元素序列的。生成的序列总是从1开始的整数值。
语法。
seq_along (X)
参数:
X – 传递的参数
seq_along()生成的序列被作为函数lapply()的第一个参数传递。该函数FUN包括分配给列表中不同组件的名称的连接,可以使用索引和列表名称以及组件向量或列表值用逗号分隔符附加在一起访问。指定列表的索引名可以用以下语法访问。
names (list-obj)[[index-cntr]]。
元素值可以使用以下语法进行访问。
list-obj [[index-cntr]] 。
例子
# 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 = ", ")))
输出
[1] "List contents : "
ele1
[1] 1 2 3 4 5ele2
[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() 函数是用来创建一个向量中的元素序列的。它需要长度和值之间的差异作为一个可选的参数。
语法:
seq(from, to, by, length.out)
参数:
from: 序列的起始元素
to: 序列的结束元素
by: 元素之间的差值
length.out: 向量的最大长度
例子 。
# 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 5ele2
[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"