[prev in list] [next in list] [prev in thread] [next in thread] 

List:       r-devel
Subject:    Re: [Rd] Undocumented S4 method Warning For Bracket
From:       Martin Morgan <mtmorgan () fhcrc ! org>
Date:       2013-12-11 10:39:52
Message-ID: 52A840F8.1060808 () fhcrc ! org
[Download RAW message or body]

On 12/05/2013 07:00 PM, Dario Strbenac wrote:
> Hello,
> 
> With R version 3.0.2 Patched (2013-10-30 r64123) I don't see warnings that I get in \
> R Under development (unstable) (2013-11-03 r64145) 
> The warnings are like :
> 
> Undocumented S4 methods:
> generic '[' and siglist 'BayMethList,ANY,ANY'
> 
> The function actually looks like :
> 
> setMethod("[", "BayMethList",
> function(x, i) {
> # Code to subset object.
> }
> 
> It has 2 parameters, not 3. The warning also happens in R 3.0.2 Release. Has this \
> been fixed in Patched but not in the development version ? 

Not a complete answer but actually the generic is

 > getGeneric("[")
standardGeneric for "[" defined from package "base"

function (x, i, j, ..., drop = TRUE)
standardGeneric("[", .Primitive("["))
<bytecode: 0x46a54e0>
<environment: 0x4698330>
Methods may be defined for arguments: x, i, j, drop
Use  showMethods("[")  for currently available ones.

and the fact that you've implemented a simpler method signature doesn't change 
the overall signature

 > getMethod("[", "BayMethList")
Method Definition:

function (x, i, j, ..., drop = TRUE)
{
     .local <- function (x, i)
     {
     }
     .local(x, i, ...)
}

Signatures:
         x
target  "BayMethList"
defined "BayMethList"

Notice how your method actually accepts and then silently ignores a 'j' 
argument. A better (?) method definition would be

    setMethod("[", c("BayMethList", "ANY", "missing"),
        function(x, i, j, ..., drop=TRUE) {})

so a user providing a 'j' argument would be told that there was no matching method.

Martin
> --------------------------------------
> Dario Strbenac
> PhD Student
> University of Sydney
> Camperdown NSW 2050
> Australia
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 


-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic