How to generate bin frequency table in R?

r bin
Manish picture Manish · Jan 8, 2015 · Viewed 22.3k times · Source

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

Answer

Colonel Beauvel picture Colonel Beauvel · Jan 11, 2015

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