[R] Use of ellipsis
Andreas Matre
r @end|ng |rom e|onu@@net
Thu May 26 20:54:50 CEST 2022
Hello,
I am trying to figure out the proper way to use ellipsis to pass
arguments to child functions. I'm trying to create a wrapper function
around stats::lm and lme4::lmer such that if the formula passed to the
wrapper function contains a random effect it will fit a lme4::lmer model
and if not it will fit a stats::lm object. I want the function to alway
want a formula and data argument and then use the ellipsis argument to
pass additional arguments to either lme4::lmer or stats::lm. The problem
is that when I pass additional arguments through the ellipsis argument I
get the error
"Error in eval(extras, data, env) :
..1 used in an incorrect context, no ... to look in".
A simplified version of my attempt with a reproducible example is here:
fit_model <- function(formula, data, ...) {
lm(formula, data, ...)
}
# Create test data
data <- data.frame(x1 = rnorm(100), x2 = rnorm(100))
data$y <- data$x1 + data$x2 + rnorm(100)
fit_model(y ~ x1 + x2, data = data) # This works
fit_model(y ~ x1 + x2, data = data, weights = rep(1, 100)) # This does
not work
Any hints as to why this error occurs would be appreciated. I found [1],
but I don't think that's relevant, since as far as I can tell, there
should be no non-standard evaluation here.
[1] https://stat.ethz.ch/pipermail/r-help/2010-February/228881.html
Andreas Matre
More information about the R-help
mailing list