R 如何在迭代列表时获取对象/get(k,v)对的名称?

R 如何在迭代列表时获取对象/get(k,v)对的名称?,r,list,loops,iterator,iteration,R,List,Loops,Iterator,Iteration,假设我创建了一个列表,并为列表中的对象命名 list = rep(0, times = 20) list = lapply(list, initialize_list) names(list) = names 现在我想遍历列表中的所有对象。我可以对对象执行任何操作,但我就是找不到同时获取对象名称的方法。这是否可以在for循环或lappy调用中实现,而无需显式编写 for (name in names(myList)) { v = myList[[name]] ... } ?

假设我创建了一个列表,并为列表中的对象命名

list = rep(0, times = 20)
list = lapply(list, initialize_list)
names(list) = names
现在我想遍历列表中的所有对象。我可以对对象执行任何操作,但我就是找不到同时获取对象名称的方法。这是否可以在for循环或lappy调用中实现,而无需显式编写

for (name in names(myList)) {
    v = myList[[name]]
    ...
}
?


现有的答案似乎不是我想要的,我似乎只找到了一个相关的答案,提供了上述看似笨拙的解决方案。

您可以使用名称的索引

lst = rep(0, times = 20)
lst = lapply(lst, sum)
names(lst) = letters[1:20]
for (id in seq_along(names(lst))) {
  v = names(lst)[id]
}
您可以使用purr::imap,它大致相当于Mapfunction.x、.y{…}、.x=some_iterable、.y=namessome_iterable,或者只使用Map