[Rd] Missing args with a default value in S4 methods
Herve Pages
hpages at fhcrc.org
Thu Jun 14 21:41:13 CEST 2007
Hi,
Strange things happen with missing args in S4 methods:
> setGeneric("mygen", signature="x", function(x, ...) standardGeneric("mygen"))
[1] "mygen"
> setMethod("mygen", "character", function(x, y=12, z, ...) {cat(missing(y), "\n"); cat(y, "\n")})
[1] "mygen"
> mygen("aa", z=99)
TRUE
12
> mygen("aa", , 99)
TRUE
Error in cat(y, "\n") : argument is missing, with no default
^^^^^^^ ^^^^^^^^^^
TRUE NOT TRUE!
For "normal" functions, things work as expected:
> myfun <- function(x, y=12, z, ...) {cat(missing(y), "\n"); cat(y, "\n")}
> myfun("aa", z=99)
TRUE
12
> myfun("aa", , 99)
TRUE
12
And with S3 generics too:
> dd <- data.frame(aa=letters[1:9], ii=9:1)
> head(dd, z="ignored")
aa ii
1 a 9
2 b 8
3 c 7
4 d 6
5 e 5
6 f 4
> head(dd, , "ignored")
aa ii
1 a 9
2 b 8
3 c 7
4 d 6
5 e 5
6 f 4
Cheers,
H.
More information about the R-devel
mailing list