Axel, The solution you propose looks fine to me, if an error is the outcome that you want in such a situation. Were you hoping for a different outcome? Would you, for example, prefer that the "x" in the data frame be given a different name, rather than the "x" in the function?
Jean On Thu, Oct 15, 2015 at 11:42 AM, Axel Urbiz <axel.ur...@gmail.com> wrote: > Hello, > > I have a variable named 'x' defined inside a function, which may conflict > with a variable name supplied in the argument to the function. What is the > best practice to avoid this conflict? > > foo <- function(df) { > x <- df[, 1, drop = FALSE] > dfOut <- data.frame(df, x) > dfOut > > } > Data <- data.frame(x = c(1, 2), y = c(3, 4)) > foo(Data) > > x y x.1 > 1 1 3 1 > 2 2 4 2 > > The following solution doesn't look nice to me… > > foo <- function(df) { > if (any(names(df) == 'x')) > stop("x cannot be a variable name in the data frame") > x <- df[, 1, drop = FALSE] > dfOut <- data.frame(df, x) > dfOut > > } > > Thanks! > Axel. > > [[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. [[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.