您可以嘗試爲equal-width-binning
如下:
set.seed(1)
dataset <- runif(100, 0, 10) # some random data
bins<-4
minimumVal<-min(dataset)
maximumVal<-max(dataset)
width=(maximumVal-minimumVal)/bins;
cut(dataset, breaks=seq(minimumVal, maximumVal, width))
#[1] (2.58,5.03] (2.58,5.03] (5.03,7.47] (7.47,9.92] (0.134,2.58] (7.47,9.92] (7.47,9.92] (5.03,7.47] (5.03,7.47] (0.134,2.58] (0.134,2.58] (0.134,2.58]
#[13] (5.03,7.47] (2.58,5.03] (7.47,9.92] (2.58,5.03] (5.03,7.47] (7.47,9.92] (2.58,5.03] (7.47,9.92] (7.47,9.92] (0.134,2.58] (5.03,7.47] (0.134,2.58]
#[25] (2.58,5.03] (2.58,5.03] <NA> (2.58,5.03] (7.47,9.92] (2.58,5.03] (2.58,5.03] (5.03,7.47] (2.58,5.03] (0.134,2.58] (7.47,9.92] (5.03,7.47]
#[37] (7.47,9.92] (0.134,2.58] (5.03,7.47] (2.58,5.03] (7.47,9.92] (5.03,7.47] (7.47,9.92] (5.03,7.47] (5.03,7.47] (7.47,9.92] (0.134,2.58] (2.58,5.03]
#[49] (5.03,7.47] (5.03,7.47] (2.58,5.03] (7.47,9.92] (2.58,5.03] (0.134,2.58] (0.134,2.58] (0.134,2.58] (2.58,5.03] (5.03,7.47] (5.03,7.47] (2.58,5.03]
#[61] (7.47,9.92] (2.58,5.03] (2.58,5.03] (2.58,5.03] (5.03,7.47] (0.134,2.58] (2.58,5.03] (7.47,9.92] (0.134,2.58] (7.47,9.92] (2.58,5.03] (7.47,9.92]
#[73] (2.58,5.03] (2.58,5.03] (2.58,5.03] (7.47,9.92] (7.47,9.92] (2.58,5.03] (7.47,9.92] (7.47,9.92] (2.58,5.03] (5.03,7.47] (2.58,5.03] (2.58,5.03]
#[85] (7.47,9.92] (0.134,2.58] (5.03,7.47] (0.134,2.58] (0.134,2.58] (0.134,2.58] (0.134,2.58] (0.134,2.58] (5.03,7.47] (7.47,9.92] (7.47,9.92] (7.47,9.92]
#[97] (2.58,5.03] (2.58,5.03] (7.47,9.92] (5.03,7.47]
#Levels: (0.134,2.58] (2.58,5.03] (5.03,7.47] (7.47,9.92]
#plot frequencies in the bins
barplot(table(cut(dataset, breaks=seq(minimumVal, maximumVal, width))))
classIntervals完美運行兩種類型的分級的。謝謝! –