Nicolas Gutierrez
2011-Feb-22 22:48 UTC
[R] add repeated rows in data frame (without a loop)
Hi All, I have a data frame "pop": > id xloc yloc size > 1 1 10 12 95 > 2 2 11 10 81 And I want to add the vector "rec" to the data frame "n" times (without using a loop): > rec=c(3, 5, 5, 10) > n=2 The result I want: > id xloc yloc size > 1 1 10 12 95 > 2 2 11 10 81 > 3 3 5 5 10 > 4 3 5 5 10 I know I can use pop=rbind(pop, rec) to add the vector "rec" once. What about adding the same vector "n" times without a for loop? Any hints? THANKS! Nico
On 2011-02-22 14:48, Nicolas Gutierrez wrote:> Hi All, > > I have a data frame "pop": > > > id xloc yloc size > > 1 1 10 12 95 > > 2 2 11 10 81 > > And I want to add the vector "rec" to the data frame "n" times (without > using a loop): > > > rec=c(3, 5, 5, 10) > > n=2 > > The result I want: > > > id xloc yloc size > > 1 1 10 12 95 > > 2 2 11 10 81 > > 3 3 5 5 10 > > 4 3 5 5 10 > > I know I can use pop=rbind(pop, rec) to add the vector "rec" once. What > about adding the same vector "n" times without a for loop? Any hints?Try this: popm <- as.matrix(pop) recm <- matrix(rep(rec, n), nr=n, byrow=TRUE) newpop <- data.frame(rbind(popm, recm)) Peter Ehlers> > THANKS! > > Nico > > ______________________________________________ > R-help at 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.