で特定の方法でデータ フレームを分類したいと思いR
ます。
次のようなデータ フレームがあるとします。
> data = sample(1:500, 5000, replace = TRUE)
このデータ フレームをクラス化するために、次のクラスを作成しています。
> data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500))
> table(data.cl)
data.cl
(0,10] (10,20] (20,30] (30,40] (40,50]
102 80 87 113 117
(50,60] (60,70] (70,80] (80,90] (90,100]
101 89 95 106 104
(100,200] (200,350] (350,480] (480,500]
1002 1492 1318 194
含めたい場合0
は、追加するだけinclude.lowest = TRUE
です:
> data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500),
+ include.lowest = TRUE)
> table(data.cl)
data.cl
[0,10] (10,20] (20,30] (30,40] (40,50]
102 80 87 113 117
(50,60] (60,70] (70,80] (80,90] (90,100]
101 89 95 106 104
(100,200] (200,350] (350,480] (480,500]
1002 1492 1318 194
この例0
では、このデータ フレームではまったく発生していないため、違いはありません。しかし、もしそうなら、例えば、 classの代わりに要素が4
あります:106
102
[0,10]
> data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500),
+ include.lowest = TRUE)
> table(data.cl)
data.cl
[0,10] (10,20] (20,30] (30,40] (40,50]
106 80 87 113 117
(50,60] (60,70] (70,80] (80,90] (90,100]
101 89 95 106 104
(100,200] (200,350] (350,480] (480,500]
1002 1492 1318 194
クラス制限を変更する別のオプションがあります。のデフォルトのオプションはcut()
ですright = FALSE
。に変更すると、次のようになりright = TRUE
ます。
> data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500),
+ include.lowest = TRUE, right = FALSE)
> table(data.cl)
data.cl
[0,10) [10,20) [20,30) [30,40) [40,50)
92 81 87 111 118
[50,60) [60,70) [70,80) [80,90) [90,100)
103 89 94 103 103
[100,200) [200,350) [350,480) [480,500]
1003 1497 1320 199
include.lowest
クラス制限がわずかに変化したため、クラス制限が変更され、一部のクラスで異なる量のクラス メンバーが返されるという代償を払って、"<code>include.highest" になりました。
しかし、データフレームが必要な場合
> data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500))
> table(data.cl)
data.cl
(0,10] (10,20] (20,30] (30,40] (40,50]
102 80 87 113 117
(50,60] (60,70] (70,80] (80,90] (90,100]
101 89 95 106 104
(100,200] (200,350] (350,480] (480,500)
1002 1492 1318 194
も除外する 500
にはどうすればいいですか?
もちろん、「整数を扱っているので、data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 499))
の代わりに書いてください」と言うことができます。 data.cl = cut(data, breaks = c(seq(0,100,by=10), 200, 350, 480, 500))
? ではどうすれば除外できるの500
でしょうか。