[Rd] Overwrite S3 methond from base package

Patrick Burns pburns at pburns.seanet.com
Mon Feb 13 18:18:09 CET 2012


The key question is:

 > So, is there any way to overwrite droplevels.factor and
 > droplevels.data.frame from the base package with my functions?

There is "can" and there is "should".

I don't know the answer to "can".

In regard to "should", I think it is a
very very bad idea.

The result that someone gets depends on
whether or not the new package is attached
in the session.  That is a recipe for hours
(or days) of trying to figure out mysterious
behavior.

Much better, I think, is to create a new
generic.

Pat


On 13/02/2012 11:59, Thaler,Thorn,LAUSANNE,Applied Mathematics wrote:
> Dear all,
>
> I am developing a package, which bundles my most frequently used
> functions. One of those is a modified version of droplevels from the
> base package (basically, it preserves any contrast function which was
> used to create the factor, contrast matrices are not kept, for they
> could be wrong if a level is dropped).
>
> In my NAMESPACE file I've the following directives, which should export
> my methods:
>
> S3method(droplevels, factor)
> S3method(droplevels, data.frame)
>
> However, when I load my package and I try to use those functions, the
> dispatching mechanism calls the functions droplevels.factor and
> droplevels.data.frame from the _base package_.
>
> So, is there any way to overwrite droplevels.factor and
> droplevels.data.frame from the base package with my functions? Or do I
> have to create a generic function on my own?
>
> Thanks for your help.
>
> Kind Regards,
>
> Thorn
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Patrick Burns
pburns at pburns.seanet.com
twitter: @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')



More information about the R-devel mailing list