Re: [R] obtaining first and last record for rows with same identifier

2005-05-25 Thread Frank E Harrell Jr
Francisco J. Zagmutt wrote: If you want to obtain a data frame you can use the functions head and tail like: dat=data.frame(id=rep(1:5,3),num=rnorm(15), num2=rnorm(15))#Creates data frame with id last=do.call(rbind,by(dat,dat$id,tail,1))#Selects the last observation for each id

Re: [R] obtaining first and last record for rows with same identifier

2005-05-24 Thread Sean Davis
If you have your data.frame ordered by the patid, you can use the function rle in combination with cumsum. As a vector example: a - rep(c('a','b','c'),10) a [1] a b c a b c a b c a b c a b c a b c a [20] b c a b c a b c a b c b - a[order(a)] b [1] a a a a a a a a a a b b b b b b b b b

RE: [R] obtaining first and last record for rows with same identifier

2005-05-24 Thread Berton Gunter
I think by() is simpler: by(yourframe,factor(yourframe$patid),function(x)x[c(1,nrow(x)),]) -- Bert Gunter Genentech Non-Clinical Statistics South San Francisco, CA The business of the statistician is to catalyze the scientific learning process. - George E. P. Box -Original

RE: [R] obtaining first and last record for rows with same identifier

2005-05-24 Thread Francisco J. Zagmutt
If you want to obtain a data frame you can use the functions head and tail like: dat=data.frame(id=rep(1:5,3),num=rnorm(15), num2=rnorm(15))#Creates data frame with id last=do.call(rbind,by(dat,dat$id,tail,1))#Selects the last observation for each id