将向量值追加到子列表

时间:2019-06-12 15:55:32

标签: r list vector

假设我们有一个包含三个子列表的列表:list1 <- [[1,2],[4,5],[7,8]] 和一个向量:vector1 <- c(3,6,9)

R中是否有一种方法,不使用循环将向量的值添加到列表中,因此我们可以获得结果list2 = [[1,2,3],[4,5,6],[7,8,9]] ? 感谢所有评论

1 个答案:

答案 0 :(得分:3)

使用Map

Map(c, list1, vector1)

#[[1]]
#[1] 1 2 3

#[[2]]
#[1] 4 5 6

#[[3]]
#[1] 7 8 9

lapply

lapply(seq_along(list1), function(x) c(list1[[x]], vector1[[x]]))

等效的purrr变体可以是

purrr::map2(list1, vector1, c)
purrr::map(seq_along(list1), ~c(list1[[.]], vector1[[.]]))

数据

list1 <- list(c(1,2),c(4,5),c(7,8))
vector1 <- c(3,6,9)