[R] how to change the date into an interval of date?

arun smartpink111 at yahoo.com
Wed Apr 17 15:27:17 CEST 2013


Hi,
I hope this is what you are looking for:
library(plyr)
 mutate(evt_c.1,t=ave(as.numeric(gsub(".*\\-","",responsed_at)),patient_id,gsub("-.*","",responsed_at),FUN=function(x) c(0,cumsum(diff(x)))))
#   patient_id responsed_at t
#1           1       2010-5 0
#2           1       2010-7 2
#3           1       2010-8 3
#4           1       2010-9 4
#5           1      2010-12 7
#6           1       2011-1 0
#7           1       2011-2 1
#8           2       2010-5 0
#9           2       2010-6 1
#10          2       2010-7 2
#11          3       2010-1 0
#12          3       2010-2 1
#13          3       2010-4 3
#14          3       2010-5 4
#15          4      2011-01 0
#16          4      2011-03 2
#17          5      2012-04 0
#18          5      2012-06 2
A.K.



________________________________
 From: GUANGUAN LUO <guanguanluo at gmail.com>
To: arun <smartpink111 at yahoo.com> 
Sent: Wednesday, April 17, 2013 9:21 AM
Subject: Re: how to change the date into an interval of date?
 


evt_c.1<- read.table(text="
patient_id   responsed_at
1            2010-5
1            2010-7
1            2010-8
1            2010-9
1            2010-12
1            2011-1
1            2011-2
2            2010-5
2            2010-6
2            2010-7
3            2010-1
3            2010-2
3            2010-4
3            2010-5
4            2011-01
4            2011-03
5            2012-04
5            2012-06
",sep="",header=TRUE,
stringsAsFactors=FALSE)

mutate(evt_c.11,t=ave(as.numeric(gsub(".*\\-","",responsed_at)),patient_id,FUN=function(x) c(0,cumsum(diff(x)))))  patient_id responsed_at  t
1           1       2010-5  0
2           1       2010-7  2
3           1       2010-8  3
4           1       2010-9  4
5           1      2010-12  7
6           1       2011-1 -4
7           1       2011-2 -3
8           2       2010-5  0
9           2       2010-6  1
10          2       2010-7  2
11          3       2010-1  0
12          3       2010-2  1
13          3       2010-4  3
14          3       2010-5  4
15          4      2011-01  0
16          4      2011-03  2
17          5      2012-04  0
18          5      2012-06  2


This is my problem.



More information about the R-help mailing list