Hi,
Try:
dat1<- read.table(text="
ID Date x2 x1          x3 
56 25-Jun-01 10 2  126 
56 29-Oct-01 10 2  140 
56 18-Mar-02 10 2  445 
56 6-Jun-03 10 2    224 
56 16-Jan-04  10 2    NA 
58 10-Jan-02 10.8 1 715 
58 26-Dec-03 10.8 1    NA 
",sep="",header=TRUE,stringsAsFactors=FALSE) 
 unlist(with(dat1,by(as.Date(Date,format="%d-%b-%y"),ID,FUN=function(x) 
c(diff(x),NA))),use.names=FALSE)
#[1] 126 140 445 224  NA 715  NA
#or
unlist(lapply(split(dat1,dat1$ID),function(x) 
c(diff(as.Date(x$Date,format="%d-%b-%y")),NA)),use.names=FALSE)
#[1] 126 140 445 224  NA 715  NA
A.K.



________________________________
From: farnoosh sheikhi <farnoosh...@yahoo.com>
To: "smartpink...@yahoo.com" <smartpink...@yahoo.com> 
Sent: Tuesday, July 23, 2013 3:11 PM
Subject: subtracting rows for unique 



Hi there,

Hope you are doing well.
I have a data set which looks like below, I want to create a new variable 
(x3-here) which subtracts the date for unique ID.
For example for ID 56, the first value is the difference between  29-Oct, and 
25-June.
Thanks for your help and time.




ID Date x2 x1          x3 
56 25-Jun-01 10 2 126 
56 29-Oct-01 10 2 140 
56 18-Mar-02 10 2 445 
56 6-Jun-03 10 2 224 
56 16-Jan-04  NA             NA 
58 10-Jan-02 10.8 1 715 
58 26-Dec-03 10.8 1             NA 

Best,Farnoosh Sheikhi 

______________________________________________
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.

Reply via email to