[R] long format - find age when another variable is first 'high'

David Freedman 3.14david at gmail.com
Mon May 25 14:45:01 CEST 2009


Dear R, 

I've got a data frame with children examined multiple times and at various
ages.  I'm trying to find the first age at which another variable
(LDL-Cholesterol) is >= 130 mg/dL; for some children, this may never happen. 
I can do this with transformBy and ddply, but with 10,000 different
children, these functions take some time on my PCs - is there a faster way
to do this in R?  My code on a small dataset follows.  

Thanks very much, David Freedman

d<-data.frame(id=c(rep(1,3),rep(2,2),3),age=c(5,10,15,4,7,12),ldlc=c(132,120,125,105,142,160))
d$high.ldlc<-ifelse(d$ldlc>=130,1,0)
d
library(plyr)
d2<-ddply(d,~id,transform,plyr.minage=min(age[high.ldlc==1]));
library(doBy)
d2<-transformBy(~id,da=d2,doby.minage=min(age[high.ldlc==1]));
d2
-- 
View this message in context: http://www.nabble.com/long-format---find-age-when-another-variable-is-first-%27high%27-tp23706393p23706393.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list