使用 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"
我有以下数据。 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"