Try this: new.col <- 1:2 transform(df, myNewColumn2 = new.col[1:nrow(df)])
On Tue, Aug 3, 2010 at 9:32 PM, Ralf B <ralf.bie...@gmail.com> wrote: > Hi experts, > > I am trying to write a very flexible method that allows me to add a > new column to an existing data frame. This is what I have so far: > > add.column <- function(df, new.col, name) { > n.row <- dim(df)[1] > length(new.col) <- n.row > names(new.col) <- name > return(cbind(df, new.col)) > } > > df <- NULL > df <- data.frame(a=c(1,2,3)) > df > # corect: added NA to new collumn > df <- add.column(df,c(1,2),'myNewColumn2') > df > # problem: not added, data frame should be extended with NAs > add.column(df,c(1,2,3,4),'myNewColumn3') > df > > > However, there are two problems: > > 1) The column name is not renamed accurately but always set to > 'new.col' . Surely this could be done outside the function, but it > would be better if its self contained. > 2) It does not work for cases where new.col is longer than the length > of the data frame. In such cases, I would like to add NA's to the data > frame if it has less rows. > > Any ideas to to solve this? > > 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ 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.