2011-12-06 11 views
2

2つの列$ startと$ endに基づいて効率的に何度も行を検索する必要がある大きなRデータフレームがあります。私は典型的な解決策は、O(N)であることを想像:DataFrame列の効率的な値の参照

data[data$start <= start & data$end >= end, 1] 

私は列の少なくとも一つをソートし、より効率的なO(ログ(N))のルックアップを行うことを好むだろう。ルックアップのためにデータフレーム内で順序付けを利用するには、どのような組み込みのRメソッドがありますか?

+4

あなたは 'data.table'パッケージを試すことができます – James

+4

これは実際には遅いですか?あなたはどれくらいのデータを持っていますか? – hadley

+2

インデックスルックアップとサブセット化は一般的にコードボトルネックではないほど速いので、再現可能なタイミングの例を提供すると便利です。 –

答えて

5

これは古い質問です。ちょうどRで高速検索を探している人のためのリンクを提供したかった。

Lookup performance in R - Joseph Adler私はそれが私の必要性のために非常に包括的であることがわかります。彼は二重括弧の表記法([[)を提唱し、複数の選択肢の時間比較を提供しています。

+0

[[[?]を使用してデータフレーム内の行全体をどのように取得できますか? – pldimitrov

関連する問題