[R] Binning groups
David Winsemius
dwinsemius at comcast.net
Sun May 25 01:01:45 CEST 2008
> On Thu, 22 May 2008, francogrex wrote:
>
> Hi, this is probably quite simple but I can't seem to do it
correctly. I
> have
> a data frame of counts of infections in different ages; something
like:
> count=c(1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 7, 8, 8, 9, 9,
> 10, 11, 15, 17, 17, 17, 17, 19, 19, 19, 19, 20, 20, 20, 21, 21,
> 21, 22, 22, 22, 22, 23, 23, 23, 23, 23, 24, 24, 25, 27, 31, 33
> )
> age=c(3, 8, 9, 7, 56, 58, 10, 13, 53, 55, 11, 12, 14, 51, 54,
> 15, 50, 52, 18, 49, 48, 47, 20, 16, 17, 25, 45, 29, 33, 36, 41,
> 35, 43, 46, 21, 27, 31, 28, 32, 38, 42, 22, 34, 37, 40, 44, 24,
> 39, 30, 26, 19, 23)
>
> frame=data.frame(count, age)
>
> But the data are too grainy and I would like to bin them in age
groups
> (that
> I chose) to be something like:
> age<10 ...... count=5
> 10=<age <20 ..... count=8
> etc...
> What is the easiest and quickest way to do this? Thanks
-------------
Anne York <york at zipcon.net> wrote:
> One method is to define a new variable, say age.cut and then
> to table it:
>
>
> frame$age.cut = cutframe$age, c(0,11,20,35,60),right=FALSE)
# Scratched my head wondering if I neede to learn a new function.
# Pretty sure you meant to type:
frame$age.cut = cut(frame$age, c(0,11,20,35,60), right=FALSE)
> #check frame$age.cut to see that boundaries are really as
> #you wanted them
> frame$age.cut
>
> table(frame$age.cut)
[0,11) [11,20) [20,35) [35,60)
5 9 15 23
# But that did not use the count variable. Only counted categories.
# Try instead:
table(rep(frame$age.cut, count))
[0,11) [11,20) [20,35) [35,60)
8 96 332 316
--
David Winsemius
More information about the R-help
mailing list