给定一些任意向量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
中的值可以强制为列表槽的合适名称。
答案 0 :(得分:1)
如果我是你,我会简单地使用
split(seq_along(v), v)
但是,如果您确实希望结果符合您想要的顺序,请使用
split(seq_along(v), factor(v, levels = unique(v)))