On 27-09-2012, at 07:16, Marcel Curlin <cemar...@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 ______________________________________________ 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.