2

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

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

4

1 回答 1

3

你很亲密。索引后,可以将元素折叠为单个字符串。在这里,我使用包装器(toStringpaste(., collapse=', ')

 f1 <- function(x,y) toString(x[y])
 mapply(f1,x,indices)
 #[1] "a, b" "a, c"
于 2015-01-29T19:32:01.993 回答