Ricardo Pietrobon <[EMAIL PROTECTED]> writes: > ID date cost > 1 "2001-01" 200.00 > 1 "2001-01" 123.94 > 1 "2001-03" 100.23 > 1 "2001-04" 150.34 > 2 "2001-03" 296.34 > 2 "2002-05" 156.36 > > > I would like to obtain the median costs and boxplots for the sum of > encounters happening in the first six months after the index encounter > (first patient encounter) for each patient, then the mean and median costs > for the costs happening from 6 to 12 months after the index encounter, and > so on. Notice that the first ID has two encounters during the index date, > making it more difficult to define a single row with the index encounter. > > Any help would be appreciated,
Let's see... You're going to need a bit of slight ugliness to convert the date to a numeric month number. Something like (NB: That's a code that means "I didn't actually try this"...) attach(yourdata) monthnum <- sapply(strsplit(date,"-"),function(x)sum(as.numeric(x)*c(12,1))) Then we need a table of the index dates for each person tbl <- tapply(monthnum, ID, min) Now subtract the index date from monthnum months.post.index <- monthnum - tbl[ID] then you probably want to look at the subset of your original data frame and do the sums total.cost.6mo <- with(subset(yourdata,months.post.index < 6), tapply(cost,ID,sum)) and finally boxplot(total.cost.6mo) median(total.cost.6mo) (You could elaborate by converting months.post.index with cut() and use lapply(names(period),.....) to give you a list of tables, which boxplot() might actually know how to plot directly.) -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help