Ben Bolker <[EMAIL PROTECTED]> writes: > I'm trying to add arguments to the AIC method > for some classes -- things like > weights=TRUE to calculate AIC weights > corr=TRUE, nobs to calculate AICc > delta=TRUE to put a delta-AIC column in the output. > > The problem is that AIC is defined as > AIC(object, ..., k=2) where k is the constant associated > with the penalty term and ... is a list of objects > that will have their AICs calculated and listed. > Thus I'm not allowed (I think) to extend the definition to > > AIC(object, ..., nobs, corr=FALSE, delta=FALSE, weights=FALSE, k=2)
I think you can add args before the '...'. However, you will need to provide values for them in all calls or else they will steal a fit from the '...' args. I don't understand really what you are trying to achieve, so this may not be helpful. Nevertheless, here is a dummy example that you may find useful. setClass("Foo", representation=representation( fit="lm")) setMethod("AIC", "Foo", function(object, weights=TRUE, delta=TRUE, ..., k=2) { ans <- AIC([EMAIL PROTECTED], k=k, ...) args1 <- list(weights=weights, delta=delta, k=k) cat("args\n") print(args1) cat("answer:\n") print(ans) }) example("AIC") foo <- new("Foo", fit=lm1) AIC(foo) ## AIC(foo, lm1) # this doesn't work, lm1 gets picked up as the weights arg AIC(foo, weights=FALSE, delta=TRUE, lm1, lm1, lm1) + seth ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel