我有以下数据。 x
是向量列表,indices
是索引列表。
x = list(c("a", "b", "c", "a"), c("b", "x", "a", "c"))
indices = list(c(1, 2), c(3, 4))
我想要做的是逐步完成列表x
中表示的每个向量,并根据indices
向量从该向量中进行子选择。所以预期的结果是
a,b
a,c
我用mapply
> mapply('[',x,indices)
[,1] [,2]
[1,] "a" "a"
[2,] "b" "c"
但那不是我想要的。有什么指针吗?提前谢谢。
答案 0 :(得分:3)
你很亲密。索引后,元素可以折叠为单个字符串。在这里,我使用toString
paste(., collapse=', ')
)
f1 <- function(x,y) toString(x[y])
mapply(f1,x,indices)
#[1] "a, b" "a, c"