Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to generate bin frequency table in R?

Tags:

r

bin

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

like image 670
Manish Avatar asked Jan 08 '15 11:01

Manish


2 Answers

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
like image 93
Colonel Beauvel Avatar answered Sep 22 '22 13:09

Colonel Beauvel


try

 as.data.frame(table(cut(x, breaks=seq(0,1, by=0.1))))
like image 44
akrun Avatar answered Sep 21 '22 13:09

akrun