[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