Right. I believe that last time this topic came up (August last year) you said 
that your preferred solution was to export the method but not the generic. I 
think that's a good idea.

The reason that it doesn't work with filter is that when you created the 
generic function filter in the dplyr package you overloaded the non-generic 
filter function in the stats package. Since stats is a default package that is 
always on the search path, this means you created an ambiguity that must always 
be resolved by making the generic function visible.

In particular, the QC code is finding the non-generic filter function when it 
tries to check that the filter.test (or filter.ggvis) method is working 
correctly, and that is why you get the warnings.

Martyn
________________________________________
From: Hadley Wickham [h.wick...@gmail.com]
Sent: 20 June 2014 11:33
To: Martyn Plummer
Cc: winstoncha...@gmail.com; r-devel@r-project.org
Subject: Re: [Rd] R CMD check warning with S3 method

> When you provide a method for a generic function imported from another
> package then the generic must be on the search path. Otherwise if a user
> types "filter" the dispatch to "filter.test" will never occur.

Right, and this is as desired. If dplyr is not explicitly loaded by
the user, filter.ggvis will never be called.

I don't understand why ggvis should be need to re-export filter from
dplyr - the intent is that filter will be useable with ggvis object,
but you'll only have the filter generic available if you've loaded
dplyr.

Hadley

--
http://had.co.nz/
-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}

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

Reply via email to