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: "mmurenu at tiscali.it" <mmurenu at tiscali.it>
To: smartpink111 at 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