Rでは、要素x
とベクトルがありv
ます。にv
等しい要素の最初のインデックスを見つけたいのですがx
。これを行う方法の1つは次のとおりwhich(x == v)[[1]]
です。それを行うためのより直接的な方法はありますか?
ボーナスポイントについてx
、ベクトルなら機能する機能はありますか?つまり、x
in の各要素の位置を示すインデックスのベクトルを返す必要がありv
ます。
私の質問では、xでは
—
ライアンC.トンプソン
which(x == v)[[1]]
なくベクトル化された関数を使用したいと思いましたが、そうではありません。
which(x == v)[[1]]
ように最適化されているため、それほど効率的ではありません。これは==
、すべてのベクトル要素に適用される1つの比較()演算子と、インデックス(which
)の1つのサブセットです。それでおしまい。この関数で10.000回の繰り返しを実行していない限り、関連性のあるものは何もありません。その他のソリューションではmatch
、などのPosition
多くのデータが返されない場合がありwhich
ますが、必ずしも効率的ではありません。