2017-01-17 8 views
1

いくつかの任意のベクトルvが与えられたら、v で表される値のそれぞれについて、vのインデックスのベクトルからなるリストindex.vectorsを生成したいと思います。例えば同じ値に対応するベクトルインデックスのグループを取得する方法は?

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 

この種を生成するために、ビルトイン/標準的な方法はあります値のベクトルからグループ化するか?


可能であれば、names(index.vectors)は、初登場の順序に、vで一意の値のベクトルでなければなりません。この質問のために、vの値をリストスロットの適切な名前に強制することができます。

答えて

1

私があなただったらあなたは本当に結果が希望の順序になりたい場合は、私は単に

split(seq_along(v), factor(v, levels = unique(v))) 
を使用し、しかし

split(seq_along(v), v) 

を使用します

関連する問題