[R] Computing row differences in new columns
Henrique Dallazuanna
wwwhsd at gmail.com
Mon Mar 21 21:12:04 CET 2011
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.muller at doctor.com> wrote:
>
> -----Original Message-----
> From: Roberto Lodeiro Muller <roberto.muller at doctor.com>
> To: roberto.muller at 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.muller at doctor.com>
> To: r-help at 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]]
> ______________________________________________
> -help at 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 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.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
More information about the R-help
mailing list