> 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 <[EMAIL PROTECTED]> 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 ______________________________________________ R-help@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.