Calculating number of elapsed days from starting date
On 27-09-2012, at 07:16, Marcel Curlin <cemarcel at u.washington.edu> wrote:
Hi
I have data for events in rows, with columns for person and date. Each
person may have more than one event;
tC <- textConnection("
Person date
bob 1/1/00
bob 1/2/00
bob 1/3/00
dave 1/7/00
dave 1/8/00
dave 1/10/00
kevin 1/2/00
kevin 1/3/00
kevin 1/4/00
")
data <- read.table(header=TRUE, tC)
close.connection(tC)
rm(tC)
I would like to add a new column to my dataframe containing the calculated
number of elapsed days from the starting date for each person. So the new
dataframe would read
Person date Days
bob 1/1/00 0
bob 1/2/00 1
bob 1/3/00 2
dave 1/7/00 0
dave 1/8/00 1
dave 1/10/00 3
kevin 1/2/00 0
kevin 1/3/00 1
kevin 1/4/00 2
Not sure how to do this, tried looking through the forum but didn't find
anything that seemed to apply. Suggestions appreciated.
You could do this DF$realdate <- as.Date(as.character(DF$date),format="%m/%d/%y") DF$Days <- ave(as.numeric(DF$realdate), by=DF$Person, FUN=function(x) x-x[1]) If you don't want the as.character then you should add stringsAsFactors=FALSE to the read.table argument list. Berend