[R] variable names when using S3 methods
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Apr 28 14:43:19 CEST 2008
options(warnPartialMatchArgs=TRUE) is available to those who do regrets,
foo.default: m is 1
In fooA("hi", m = 1) : partial argument match of 'm' to 'model'
On Mon, 28 Apr 2008, Peter Dalgaard wrote:
> Aaron Rendahl wrote:
>> I'm seeing some funny behavior when using methods (the older S3 type)
>> and having variables that start with the same letter. I have a vague
>> recollection of reading something about this once but now can't seem
>> to find anything in the documentation. Any explanation, or a link to
>> the proper documentation, if it does exist, would be appreciated.
>> Thanks, Aaron Rendahl
>> University of Minnesota School of Statistics
>> # set up two function that both use method "foo" but with different
>> variable names
>> # now set up two methods (default and character) that have an
>> additional variable
>> foo.character <- function(model, m=5,...)
>> cat("foo.character: m is", m, "\n")
>> foo.default <- function(model, m=5,...)
>> cat("foo.default: m is", m, "\n")
>> # both of these use foo.character, as expected
>> # but here, fooA uses foo.default instead
>> # additionally, these use foo.character, as expected
> This is partial matching on argument names, a feature regretted by its
> designers, but a feature nevertheless.
> It has nothing to do with S3 as such, it is just that fooA("hi",m=1)
> matches "m" to "model" and believes that you meant fooA("hi", model=1).
> It often bites people in S3 methods though, because in most other cases,
> you can put the arguments after "..." where they require exact matching
> (consider the naming forms of c() and cbind(), for instance).
> O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help