向列表的每个元素添加一个字段

时间:2014-02-10 19:55:17

标签: r list

我有一个清单

> (mylist <- list(list(a=1),list(a=2),list(a=3)))
[[1]]
[[1]]$a
[1] 1


[[2]]
[[2]]$a
[1] 2


[[3]]
[[3]]$a
[1] 3

我想在b的每个子列表中添加字段11:13,以获得类似

的内容
> (mylist <- list(list(a=1,b=11),list(a=2,b=12),list(a=3,b=13)))
[[1]]
[[1]]$a
[1] 1

[[1]]$b
[1] 11


[[2]]
[[2]]$a
[1] 2

[[2]]$b
[1] 12


[[3]]
[[3]]$a
[1] 3

[[3]]$b
[1] 13

我该怎么做?

(请注意,我有大量这样相对较小的列表,因此这将在apply中调用,并且必须相当快。)

1 个答案:

答案 0 :(得分:1)

mylist <- list(list(a=1),list(a=2),list(a=3))
b.vals <- 11:13
mylist <- lapply(
  1:length(mylist), 
  function(x) {
    mylist[[x]]$b <- b.vals[[x]]
    mylist[[x]]
} )