私はジョシュアに同意します。cut
は、この仕事のためにほとんどの人が考えると思います。私はそのデフォルトを好むことは起こりません。左閉じた間隔を持つことを好みます。cut
でこれを正しく設定するのは軽微な苦痛です(幸いにも、私の弱い脳にとって、フランク・ハレルはcut2
第3の選択肢は、findInterval
を使用することです。これは、結果を別の抽出や選択プロセスのインデックスとして使用する場合に特に適しています。その結果は、おおよそas.numeric
を適用した場合に得られる結果になります。
require(Hmisc)
cut2(dataset, c(1,4,9,17,23))
[1] [ 4, 9) [ 4, 9) [ 9,17) [ 1, 4) [ 9,17) [ 9,17) [17,23] [17,23] [ 1, 4) [ 9,17)
[11] [ 9,17) [ 9,17) [ 9,17) [17,23] [ 1, 4) [17,23] [ 9,17) [17,23]
(findInterval
あなたがW最大を交換しない限り、余分な間隔を形成するために、閉鎖端として上限を使用することに注意してください:cut
の結果にi番目Inf
、Rの無限の予約語)
findInterval(dataset, c(c(1,4,9,17,23)))
[1] 2 2 3 1 3 3 4 4 1 3 3 3 3 4 1 5 3 4
as.numeric(cut(dataset, c(1,4,9,17,Inf), include.lowest=TRUE))
[1] 1 2 2 1 3 3 4 4 1 3 3 3 3 4 1 4 3 3
as.numeric(cut(dataset, c(1,4,9,17,23), include.lowest=TRUE))
[1] 1 2 2 1 3 3 4 4 1 3 3 3 3 4 1 4 3 3
OPはを求めたものですダミー変数()にcut' 'から取得するには、' model.matrix(〜ビン-1、データを試してみてください=データセット) ' –