[R] Counting frequency within each range

arun smartpink111 at yahoo.com
Fri Jul 27 04:57:59 CEST 2012


Hi,

Try this:a<-c(4,5,23,34,43,54,56,65,67,324,435,453,456,567,657)
a1<-melt(table(cut(a,breaks=c(0,10,20,30,60,120,240,480,960))))
a2<-data.frame(sapply(a1,function(x) gsub("\\(|\\]","",gsub("\\,","-",x))))
colnames(a2)<-c("numbers","Freq")
a2
#  numbers Freq
#1    0-10    2
#2   10-20    0
#3   20-30    1
#4   30-60    4
#5  60-120    2
#6 120-240    0
#7 240-480    4
#8 480-960    2

#You can also get the same result by:
a1<-as.data.frame(table(cut(a,breaks=c(0,10,20,30,60,120,240,480,960),labels=c("0-10","10-20","20-30","30-60","60-120","120-240","240-480","480-960"))) )
colnames(a1)<-c("numbers","Freq")
 a1

A.K.





----- Original Message -----
From: Chintanu <chintanu at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Thursday, July 26, 2012 9:22 PM
Subject: [R] Counting frequency within each range

Hi,

This is a simple problem, but for the life of me I cannot find the answer.
How to determine frequency within given ranges ?
I know that table() gives frequency, for example

a <- table(numbers)
> a
numbers
  4   5  23  34  43  54  56  65  67 324 435 453 456 567 657
  2   1   2   2     1   1     2   1     2     1     3     1       1   1   1

> as.data.frame(table(numbers))
   numbers Freq
1        4    2
2        5    1
3       23    2
4       34    2
...

However, there must be some simple way to get the frequency based on
ranges, such as 0-10, 10-20, 20-30 and so on.
Please help !

Thank you.

Cheers,
Chintanu

    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list