Hi Matteo, You could do this: dat1<-read.table(text=" year h len fre 1994 5 10.5 2 1994 5 14.0 2 1994 5 11.5 1 1994 9 13.0 3 1994 9 11.5 1 1994 9 13.5 5 ",sep="",header=TRUE)
res<-do.call(rbind,lapply(split(dat1,dat1$fre),function(x) x[rep(row.names(x),x$fre),1:3])) row.names(res)<-1:nrow(res) res # year h len #1 1994 5 11.5 #2 1994 9 11.5 #3 1994 5 10.5 #4 1994 5 10.5 #5 1994 5 14.0 #6 1994 5 14.0 #7 1994 9 13.0 #8 1994 9 13.0 #9 1994 9 13.0 #10 1994 9 13.5 #11 1994 9 13.5 #12 1994 9 13.5 #13 1994 9 13.5 #14 1994 9 13.5 A.K. ----- Original Message ----- From: "mmur...@tiscali.it" <mmur...@tiscali.it> To: smartpink...@yahoo.com Cc: Sent: Saturday, January 12, 2013 1:23 PM Subject: bind tables Hi Arun, Thank you very much for your reply. I know that I was not clear enough, since my basic knowledge of r language. To be more clear.... I have this df: year h len fre 1994 5 10.5 2 1994 5 14.0 2 1994 5 11.5 1 1994 9 13.0 3 1994 9 11.5 1 1994 9 13.5 5 MY goal is to obtain: year h len 1994 5 10.5 1994 5 10.5 1994 5 14.0 1994 5 14.0 1994 5 11.5 1994 9 13.0 1994 9 13.0 1994 9 13.0 1994 9 11.5 1994 9 13.5 1994 9 13.5 1994 9 13.5 i.e. disaggregate the freq variable. To do that I'm trying to rbind as follow: each row with fre=2 twice (aa,aa) having subset aa for fre=2 each row with fre=3 three times (aa,aa,aa) having subset aa for fre=3 each row with fre=3 three times (aa,aa,aa,aa,aa) having subset aa for fre=5 You probably know a faster and less rude way :) best Matteo ______________________________________________ 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.