r - 将位置索引添加到列表
问题描述
我想在列表中添加一个顺序元素。假设我有以下列表
lst <- list("A"=list(e1="a",e2="!"), "B"=list(e1="b", e2="@"))
$A
$A$e1
[1] "a"
$A$e2
[1] "!"
$B
$B$e1
[1] "b"
$B$e2
[1] "@"
我想附加一个e3
这是该元素在列表中的位置索引,所以基本上我希望我的列表是:
$A
$A$e1
[1] "a"
$A$e2
[1] "!"
$A$e3
[1] 1
$B
$B$e1
[1] "b"
$B$e2
[1] "@"
$B$e3
[1] 2
解决方案
setNames(lapply(seq_along(lst), function(i){
temp = lst[[i]]
temp$e3 = i
temp
}), names(lst))
#$`A`
#$`A`$`e1`
#[1] "a"
#$`A`$e2
#[1] "!"
#$`A`$e3
#[1] 1
#$B
#$B$`e1`
#[1] "b"
#$B$e2
#[1] "@"
#$B$e3
#[1] 2