Of course you are correct the second answer should be c(2,2,1,1,1,3) Thanks everyone.
On Wed, 2015-02-04 at 20:53 +0000, David L Carlson wrote: > How about? > > > ave(dat$D, dat$S, FUN=order) > [1] 2 1 1 1 2 3 > > ave(dat_2$D, dat_2$S, FUN=order) > [1] 2 2 1 1 1 3 > > Note, your answer for the second example is incorrect since row 2 (c, 3) and > row 5 (c, 2) are both assigned 2. > > ------------------------------------- > David L Carlson > Department of Anthropology > Texas A&M University > College Station, TX 77840-4352 > > -----Original Message----- > From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Tom Wright > Sent: Wednesday, February 4, 2015 2:08 PM > To: Rui Barradas > Cc: r-h...@stat.math.ethz.ch > Subject: Re: [R] Still trying to avoid loops > > Thanks, I was not aware of order(). > I did deliberately mess up the order of S. The following example breaks > your solution > dat_2<-data.frame(S=factor(c('a','c','a','b','c','c')), > D=c(5,3,1,3,2,4)) > > which should give the answer c(2,2,1,1,2,3) > > Your solution does indicate that sorting the data correctly before > starting might solve the problem. > > > On Wed, 2015-02-04 at 19:49 +0000, Rui Barradas wrote: > > Hello, > > > > Aren't the levels of your example wrong? If the levels are > > levels=c('a','b','c'), not c('b', 'a', 'c'), then the following will do > > the job. > > > > unname(unlist(tapply(dat$D, dat$S, order))) > > > > > > Hope this helps, > > > > Rui Barradas > > > > Em 04-02-2015 19:34, Tom Wright escreveu: > > > Given a dataframe: > > > dat<-data.frame(S=factor(c('a','b','a','c','c','c',levels=c('b','a','c')), > > > D=c(1,5,3,2,3,4)) > > > > > > where S is a subject identifier and D a visit (actually a date in my > > > real dataset). I would like to generate another column giving the visit > > > number > > > > > > R=c(2,1,1,1,2,3) > > > > > > My current solution uses nested loops and is slow and ugly. I've looked > > > at by() but can't see how to keep the order of R correct. > > > > > > Thanks, > > > Tom > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > 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. > > > > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.