如何根据索引向量对向量列表进行子集化?

How to subset a list of vectors based on a vector of indexes?

我想使用 purrr 对该列表中的元素进行子集化

u <- list(a=1:10, b=1:10)

使用 maxCol 作为从 1 开始的索引向量的最高边界。例如,假设

maxCol <- c(6L, 3L)

那么输出应该是这样的

$a
[1] 1 2 3 4 5 6

$b
[1] 1 2 3

其实我想保留a位置1到位置6的所有值,以及b位置1到3的所有值。 我知道如何用循环来做,但我想使用 purrr 。例如,我认为这样的事情会起作用但它没有:

map2(u, maxRow, u[1:maxCol])

这对我有用:

map2(u,maxCol,head)

输出

$a
[1] 1 2 3 4 5 6

$b
[1] 1 2 3

我们可以使用 Map 来自 base R

Map(head, u, n = maxCol)