使用 do.call、lapply 或 mapply 的向量列表中的 R sub select?

R sub select from a list of vectors using do.call, lapply or mapply?

我有以下数据。 x 是向量列表,indices 是索引列表。

x = list(c("a", "b", "c", "a"), c("b", "x", "a", "c"))
indices = list(c(1, 2), c(3, 4))

我想要做的是逐步遍历列表 x 中表示的每个向量,并根据 indices 向量从该向量中提取 select。所以预期的结果是

a,b
a,c

我试过 mapply

> mapply('[',x,indices)
     [,1] [,2]
[1,] "a"  "a" 
[2,] "b"  "c" 

但这不是我想要的。任何指针?提前致谢。

你很接近。索引后,元素可以折叠成一个字符串。在这里,我为 paste(., collapse=', ')

使用包装器 (toString)
 f1 <- function(x,y) toString(x[y])
 mapply(f1,x,indices)
 #[1] "a, b" "a, c"