Data preparation

id<- seq(1,20, by=1)
IQ<- c(92,107,83,101,107,92,99,119,93,106,105,88,106,90,97,118,120,72,100,104)
IQs <- data.frame(id,IQ)
IQs

Sort the data based on IQ value in ascending order

IQs_sorted <- IQs[order(IQ),]
IQs_sorted

Equal-width binning using 5 bins

width = ceiling((max(IQ) -min(IQ))/5)
# equal width bin id assign into sorted data frame
IQs.ew.bin <- within(IQs_sorted, binID <- ceiling((IQ-min(IQ)+1)/width))
IQs.ew.bin

Equal-frequency binning using 5 bins

freq = dim(IQs)[1]/5
binID <- rep(1:freq, each =5) # 4 bins with 5 element for each.
IQs.ef.bin <- data.frame(IQs_sorted,binID) #assign bin_id for data
IQs.ef.bin