From kevin.r.coombes at gmail.com  Wed Nov  9 20:49:56 2011
From: kevin.r.coombes at gmail.com (Kevin R. Coombes)
Date: Wed, 09 Nov 2011 13:49:56 -0600
Subject: [Rd] Define S4 methods for 'plot'
In-Reply-To: <1320862136986-4020750.post@n4.nabble.com>
References: <1320862136986-4020750.post@n4.nabble.com>
Message-ID: <4EBAD964.5020804@gmail.com>

You probably need the directive
     importFrom(graphics, "plot")
in your NAMESPACE file.  This lets the system know that you are using 
the same "plot" function that it already knows about. And your code 
should be careful not to trash a previous conversion of plot to an S4 
generic function, usually by something like

    if (!isGeneric("plot"))
      setGeneric("plot", function(x, y, ...) standardGeneric("plot"))

Best,
     Kevin

On 11/9/2011 12:08 PM, cgenolin wrote:
> Hi the list
> I am creating a package and I have a problem to define a S4 method for plot.
> I define a class 'A' and a class 'B'. I want to define a function plot for
> signature c(A,missing) and another method plot for signature c(A,B). My code
> is the following :
>
> In /package/R/ directory:
> --- main.R ---
> setGeneric("plot",function(x,y,...){standardGeneric("plot")})
> Aplot<- function(x,paramTraj=3){. . . .}
> setMethod("plot",signature=c(x="A",y="missing"),Aplot)
>
> ABplot<- function(x,y,paramTraj=5){. . . .}
> setMethod("plot",signature=c(x="A",y="B"),ABplot)
> ---------------
>
> In the root directory /package/
> --- NAMESPACE ---
> exportMethods("plot",. . . .)
> exportClasses("A","B")
> ------
> When I run the code (source("main.r")), every thinks works fine, either plot
> on object of class 'A', on 'A,B' or on numeric plot(3).
>
> The R CMD check bug on an example using plot(3).
> The R CMD build works just fine. But if I try to install the package from
> the builded file, I get the message:
> The following object(s) are masked from 'package:graphics':
>      plot.
>
> And then, I cannot use the classical function plot: plot on object 'A'
> works, but plot(1) does not.
>
> I try, reading some recent post on r-devel to remove the line 'setGeneric'
> but it does not works (which does not surprise me since getGeneric("plot")
> gives a NULL results).
>
> Any idea of what goes wrong?
>
> Christophe
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Define-S4-methods-for-plot-tp4020750p4020750.html
> Sent from the R devel mailing list archive at Nabble.com.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Define S4 methods for 'plot'
Kevin R. Coombes