Rでは、冗長名前付きベクトルを持つ場合、選択演算子で名前付きベクトルのすべての要素を取り出すことができないのはなぜですか?Rで冗長名前付きベクトルの索引付け
v <- c(1,2,3,4,5)
names(v) <- c("a","b","c","c","a")
v["c"] ## Returns only 3, not c(3,4)
Rはベクトル名が一意であるとみなし、選択演算子の引数と名前が一致するベクトルの最初の要素のみを取得するように見えます。
これは何らかの最適化ですか?同じ名前の属性を持つベクトル内の複数の要素を選択できたら、それは有益ではないでしょうか? インデックス演算子を使用するときに返される要素の数がインデックスベクトルの要素の数と同じであることを保証することは重要ですか?
なぜユニークでない名前のリストを使用したいのですか? –
直接関係はありませんが、[make.names](http://stat.ethz.ch/R-manual/R-devel/library/base/html/make.names.html)関数については、多くの場合便利ですあまりにも多くのユーザーの干渉なしで冗長な名前を削除すること。 – Chase
私の意図は、ベクトルをルックアップとして使用して、たとえば遺伝情報IDをentrezdatabaseIDs。この場合、名前(v)のいくつかのgeneymbolIDは、vの同じentrezdatabaseIDにマップすることができ、名前(v)に冗長性を与えます。 – Tony