Try this: dat$DATE <- as.Date(dat$DATE, "%d-%b-%y") dat <- cbind(dat, lapply(mapply(tapply, MoreArgs = list(INDEX = c(dat$SUBJECT, unique(dat$SUBJECT)), FUN = diff),
lapply(dat[,2:3], c, unique(dat$SUBJECT) / NA), SIMPLIFY = FALSE), unlist)) On Mon, Mar 21, 2011 at 4:38 PM, Roberto Lodeiro Muller <roberto.mul...@doctor.com> wrote: > > -----Original Message----- > From: Roberto Lodeiro Muller <roberto.mul...@doctor.com> > To: roberto.mul...@doctor.com > Sent: Mon, Mar 21, 2011 3:37 pm > Subject: Re: [R] Computing row differences in new columns > > > Sorry, my data appeared badly formatted to me, so I converted it to plain > text: > > And just to clarify, for each subject in the first row it should appear the > difference to the next row, so that the last entry on each subject would be a > NA. > > Thanks again for your help > > Roberto > > SUBJECT DATE RESULT DateDiff ResultDiff > 10751 22-Jul-03 3.5 > 10751 13-Feb-04 1.3 > 10751 20-Aug-04 1.6 > 10751 08-Mar-05 1.7 > 10751 30-Aug-05 1.6 > 10751 21-Feb-06 1.3 > 10751 31-Aug-06 1.2 > 10751 27-Feb-07 1.5 > 10751 29-Aug-07 1 > 10752 29-Jul-03 5.9 > 10752 24-Feb-04 5 > 10752 25-Aug-04 3.6 > 10752 11-Mar-05 5.1 > 10752 18-Sep-05 2.2 > 10752 23-Feb-06 3.1 > 10752 24-Aug-06 3.7 > 10752 27-Feb-07 6 > > > > > > > -----Original Message----- > From: Roberto Lodeiro Muller <roberto.mul...@doctor.com> > To: r-help@r-project.org > Sent: Mon, Mar 21, 2011 3:23 pm > Subject: [R] Computing row differences in new columns > > > > i > I have the following columns with dates and results, sorted by subject and > date. > 'd like to compute the differences in dates and results for each patient, > based > n the previous row. Obviously the last entry for each subject should be a NA. > Which would be the best way to accomplished that ? > I guess questions like that have been already answered a thousand times, so I > pologize for asking one more time. > Thanks > Roberto > > > > > > SUBJECT > ate > esult > ateDiff > esultDiff > 10751 > 2-Jul-03 > .5 > > > 0751 > 3-Feb-04 > .3 > > 10751 > 0-Aug-04 > .6 > > 10751 > 8-Mar-05 > .7 > > 10751 > 0-Aug-05 > .6 > > 10751 > 1-Feb-06 > .3 > > 10751 > 1-Aug-06 > .2 > > 10751 > 7-Feb-07 > .5 > > 10751 > 9-Aug-07 > > > 10752 > 9-Jul-03 > .9 > > 10752 > 4-Feb-04 > > > 10752 > 5-Aug-04 > .6 > > 10752 > 1-Mar-05 > .1 > > 10752 > 8-Sep-05 > .2 > > 10752 > 3-Feb-06 > .1 > > 10752 > 4-Aug-06 > .7 > > 10752 > 7-Feb-07 > > > > [[alternative HTML version deleted]] > ______________________________________________ > -h...@r-project.org mailing list > ttps://stat.ethz.ch/mailman/listinfo/r-help > LEASE do read the posting guide http://www.R-project.org/posting-guide.html > nd provide commented, minimal, self-contained, reproducible code. > > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O ______________________________________________ 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.