[R] Variable names conflict

Adams, Jean jvadams at usgs.gov
Thu Oct 15 19:49:55 CEST 2015


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.urbiz at 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 at 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]]



More information about the R-help mailing list