If your data frame only has numeric entries you could represent it as a multivariate ts time series in which case this works:
> xx <- ts(cbind(a = 1:2, b = 3:4, c = 5:6)); xx Time Series: Start = 1 End = 2 Frequency = 1 a b c 1 1 3 5 2 2 4 6 > cbind(a = ts(1:4), b = xx[, "b"], c = xx[, "c"]) Time Series: Start = 1 End = 4 Frequency = 1 a b c 1 1 3 5 2 2 4 6 3 3 NA NA 4 4 NA NA It can be done with the sqldf package like this: > library(sqldf) > DF <- data.frame(a = 1:5, b = 6:10) > DFnew <- data.frame(a = 1:7) > sqldf("select DFnew.a, DF.b from DFnew left join DF on DF.rowid = > DFnew.rowid") a b 1 1 6 2 2 7 3 3 8 4 4 9 5 5 10 6 6 NA 7 7 NA On Wed, Feb 17, 2010 at 4:00 AM, Ralf B <ralf.bie...@gmail.com> wrote: > Hi, > > I am a beginner in R and have only read a few chapters in the R book, > I was not able to find a solution for this simple problem. > > I have an empty data frame: > > a=data.frame(name="test") > > which I would like to extend in a for-loop (with data extracted from a > database). Ideally I would like to extend the data frame like this: > > a["new_1"] = 1:10 > a["new_1"] = 1:12 > a["new_1"] = 1:14 > > R now obviously complains about the changing length of the new > columns. However, I would like to have missing values being added > whenever columns are shorter than a newer (longer) column. How can I > do that? > > Thanks, > Ralf > > ______________________________________________ > 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. > ______________________________________________ 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.