我有两个长度为N的列表(l1
和l2
),每个项目都是一个向量。我希望有l1
中的向量的新列表,但不包括l2
中的索引。
如何避免使用循环?
l1 <- list(a = c(5,2,9), b = c(4,7), c = c(1,3,1,9))
l2 <- list(a = 2, b = 1, c = c(1,3))
输出将如下所示:
new.list <- list(a = c(5,9), b = 7, c = c(3,9))
答案 0 :(得分:2)
我们可以使用Map
并从l2
删除l1
中存在的索引
Map(function(x, y) x[-y], l1, l2)
#$a
#[1] 5 9
#$b
#[1] 7
#$c
#[1] 3 9
在purrr
中,可以使用map2
purrr::map2(l1, l2, ~.x[-.y])