[R] callNextMethod with dots argument
Simon Zehnder
szehnder at uni-bonn.de
Thu Sep 19 11:45:18 CEST 2013
Kien,
if you want to add variables in a function definition that is predefined by a Generic and calls CallNextMethod you have to add the '…' argument as well.
> setMethod("do",signature(a="Achild"),
> function(a,msg,...) {
> print("do Achild")
> callNextMethod()
> })
Best
Simon
On Sep 19, 2013, at 8:58 AM, Kiên Kiêu <kien.kieu at jouy.inra.fr> wrote:
> Hi,
>
> I met a problem when invoking callNextMethod within a method associated with a generic function taking ... as an argument.
>
> Here is the code
>
> setClass("Aparent",representation(x="numeric",y="numeric"))
> setClass("Achild",contains="Aparent")
>
> setGeneric("do",def=function(a,...) standardGeneric("do"))
> setMethod("do",signature(a="Aparent"),
> function(a,msg) {
> print("do Aparent")
> })
> setMethod("do",signature(a="Achild"),
> function(a,msg) {
> print("do Achild")
> callNextMethod()
> })
>
> myA <- new("Achild")
> buf <- do(a=myA) # works
> buf <- do(a=myA,msg="bonjour") # error
>
> The last call yields the following error message:
>
> Error in callNextMethod() :
> in processing 'callNextMethod', found a '...' in the matched call, but no corresponding '...' argument
>
> which I do not understand. Replacing "..." by "msg" in setGeneric makes it work. But I don't like this limitation so much (unless I understand it).
>
> Regards.
>
> Kien
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list