Hello, I am trying to write a function that adds a few columns to a data.frame. The function uses the columns in a specific way. For instance, it might take a^2 + c to produce a column d. Or it might do more complex manipulations that I don't think I need to discuss here. I want to keep x as a data.frame when I pass it into the function, as I want to use some data.frame functionality on x.
Furthermore, I don't want the names in x to have to be specific. I want to be able to specify which columns the function should treat as "a" and "c". The way I am currently doing it, is that I pass the names of the columns that I want to treat as a and c. f <- function(data,oldnames) { newnames <- c("a","c") ix <- match(oldnames,names(y)) names(y)[ix] <- newnames y <- subset(y,c==4) y$d <- y$a^2 + y$c ix <- match(newnames,names(y)) names(y)[ix] <- oldnames y } y <- data.frame(k=c(1,1,1),l=c(2,2,5),m=c(4,2,4)) f(y,c("k","m")) The way that I am doing it does not seem all that elegent or standard practice. My question is: are there potential problems programming with data.frames in this way, and are their standard practice methods of referencing data.frame names that deal with these problems? Thanks! Clark [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.