2

特定のベクトルに基づいて、特定の値がどのバケットに入るかを決定する関数を作成しようとしています。したがって、私の関数には 2 つの入力があります。バケットのブレーク ポイントを決定するベクトル (例: ベクトルが (1,4,5,10) の場合、バケットは <=1, 110 になります) と特定の数値です。バケットを決定する特定の値を出力する関数が必要です。たとえば、.9 を入力すると、出力は 1、1.6、出力は 4、5.8、出力は 10、13 は出力「10+」になります。

私が現在行っている方法は、最初に入力数値がベクトルの最大要素よりも大きいか、ベクトルの最小要素よりも小さいかを確認することです。そうでない場合は、for ループを実行して (apply の使用方法がわかりません)、数値が特定の間隔内にあるかどうかを確認します。問題は、大規模なデータ セットを扱っているため、これがあまりにも非効率的であることです。これを行う効率的な方法を知っている人はいますか?

4

1 に答える 1

4

このcut()関数はバケット化に便利です: cut(splitme,breaks=vectorwithsplits).

ただし、実際には挿入ポイントを見つけようとしているようです。二分探索のようなものが必要です。

于 2013-07-09T14:54:00.663 に答える