On 02/06/2010 12:53 PM, El-Tahtawy, Ahmed wrote:
Dear friends,
I need to fill in (duplicate the whole record) the missing days with the
same record values as long as AE is the same value (i.e. "1"), once AE
value changes, the process of duplication should proceed with the new AE
value till it changes again. e.g. I need to fill in records: day 18-day
44, all the records are carried with the new AE value of "0".
At the end for patient ID "1" we will end up with 73 records (for 73
days).
Hi Ahmed,
This hasn't been extensively tested, but it might do what you want.
fillMissingDays<-function(x) {
xdim<-dim(x)
lastday<-max(x$DAY)
newx<-as.data.frame(matrix(NA,nrow=xdim[1],ncol=xdim[2]))
names(newx)<-names(x)
newx[1,]<-x[1,]
startrow<-2
for(xrow in 2:xdim[1]) {
endrow<-x$DAY[xrow]
newday<-x$DAY[xrow-1]+1
for(newrow in startrow:endrow) {
newx[newrow,]<-x[xrow-1,]
newx$DAY[newrow]<-newday
newday<-newday+1
}
startrow<-endrow+1
}
return(newx)
}
Call as fillMissingDays(<your data frame>)
Jim
______________________________________________
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.