Search code examples
rbin

How to generate bin frequency table in R?


How can i bin data of size 0.1 for the following example.

x<-c(0.01,0.34,0.45,0.67,0.89,0.12,0.34,0.45,0.23,0.45,0.34,0.32,0.45,0.21,0.55,0.66,0.99,0.23,.012,0.34)
range        frequency
0.1-0.2       a
0.2-0.3       b
0.3-0.4       c
................
................
................
................

Regards


Solution

  • Regarding @akrun solution, I would post something usefull from the documentation ?cut, in case:

    Note

    Instead of table(cut(x, br)), hist(x, br, plot = FALSE) is more efficient and less memory hungry.

    So, in case of lots of data, I would rather opt for:

    br = seq(0,1,by=0.1)
    
    ranges = paste(head(br,-1), br[-1], sep=" - ")
    freq   = hist(x, breaks=br, include.lowest=TRUE, plot=FALSE)
    
    data.frame(range = ranges, frequency = freq$counts)
    
    #       range frequency
    #1    0 - 0.1         2
    #2  0.1 - 0.2         1
    #3  0.2 - 0.3         3
    #4  0.3 - 0.4         5
    #5  0.4 - 0.5         4
    #6  0.5 - 0.6         1
    #7  0.6 - 0.7         2
    #8  0.7 - 0.8         0
    #10   0.9 - 1         1