Dear all, I was recently contacted by a user about an alledged problem/bug in the latest version of lasso2. After some investigation, we found out that it was a user error which boils down to the following:
> x <- matrix(rnorm(200), ncol=2) > var <- "fred" > apply(x, 2, var) Error in get(x, envir, mode, inherits) : variable "fred" of mode "function" was not found only that the "offending" apply() command happened inside the gl1ce() function of lasso2. I was under the impression that R can now distinguish between variables and functions with the same name and, indeed, the following works: > var <- 2 > apply(x, 2, var) [1] 1.053002 1.250875 Poking a bit around, I guess that the ability to distinguish between variables and functions with the same name comes from the introduction of the function match.fun() and, after reading its help page, the reasons why an error is triggered the first time but not the second time is perfectly clear to me. I wonder whether it would make sense to change match.fun() such that the first case does not result in an error? I was thinking along the line that if the argument to match.fun() is a variable that contains a character vector of length one then, using get(), match.fun() attemps to find a function with that name. If the get() command does not succeed, then a second try is made using the name of the variable passed by the caller to match.fun(). So before trying to modify match.fun() and submitting a patch, I wanted to ask whether such a change would be accepted? Is there an argument that I don't see that the first case should always result in an error and not be silently resolved? Cheers, Berwin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel