如何获得对应于相同值的矢量索引组?

时间:2017-01-17 23:10:55

标签: r

给定一些任意向量v,我想生成一个列表index.vectors,其中包含v中索引的向量,用于v 1

例如,如果v是向量

v <- c(4, 0, 1, 1, 4, 0, 1, 2, 1, 1)

...然后所需的列表index.vectors将是:

> index.vectors
$`4`
[1] 1 5

$`0`
[1] 2 6

$`1`
[1]  3  4  7  9 10

$`2`
[1] 8

是否有内置/标准方法从值向量中产生这种分组?

1 只要有可能,names(index.vectors)应该是v中唯一值的向量,按其首次出现的顺序排列。为了这个问题,请随意假设v中的值可以强制为列表槽的合适名称。

1 个答案:

答案 0 :(得分:1)

如果我是你,我会简单地使用

split(seq_along(v), v)

但是,如果您确实希望结果符合您想要的顺序,请使用

split(seq_along(v), factor(v, levels = unique(v)))