有没有最好的方法将列表值附加到 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