有没有最好的方法将列表值附加到 R 中列表的子列表?
Is there a best way to append a list values to a sublist of a list in R?
假设我有一个包含子列表的列表 l
,我想在该列表的每个子列表的末尾添加一个列表元素。
> l <- list(c(1,2,3), c(2,1,4), c(4,7,6))
> l
[[1]]
[1] 1 2 3
[[2]]
[1] 2 1 4
[[3]]
[1] 4 7 6
> a <- list(3,5,7)
> a
[[1]]
[1] 3
[[2]]
[1] 5
[[3]]
[1] 7
我想要的是:
> l
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7
我已经尝试了几个选项,这个选项很接近,但它仍然没有按照我想要的方式计算,因为它将整个列表添加到列表的末尾。
l <- lapply(l, c, a)
是
mapply("c",l,a,SIMPLIFY=FALSE)
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7
一个purrr
方式:
l <- list(c(1,2,3), c(2,1,4), c(4,7,6))
a <- list(3,5,7)
purrr::map2(l,a, append)
输出:
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7
假设我有一个包含子列表的列表 l
,我想在该列表的每个子列表的末尾添加一个列表元素。
> l <- list(c(1,2,3), c(2,1,4), c(4,7,6))
> l
[[1]]
[1] 1 2 3
[[2]]
[1] 2 1 4
[[3]]
[1] 4 7 6
> a <- list(3,5,7)
> a
[[1]]
[1] 3
[[2]]
[1] 5
[[3]]
[1] 7
我想要的是:
> l
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7
我已经尝试了几个选项,这个选项很接近,但它仍然没有按照我想要的方式计算,因为它将整个列表添加到列表的末尾。
l <- lapply(l, c, a)
是
mapply("c",l,a,SIMPLIFY=FALSE)
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7
一个purrr
方式:
l <- list(c(1,2,3), c(2,1,4), c(4,7,6))
a <- list(3,5,7)
purrr::map2(l,a, append)
输出:
[[1]]
[1] 1 2 3 3
[[2]]
[1] 2 1 4 5
[[3]]
[1] 4 7 6 7