Skip to content

does subset.data.frame need to accept extra arguments?

4 messages · Peter Meilstrup, Hadley Wickham, Duncan Murdoch

#
On 13-07-07 11:09 PM, Peter Meilstrup wrote:
It needs to have ... in the formal argument list because the generic 
subset() does.

It could enforce a run-time warning that some arguments were being 
skipped (by testing length(list(...)) for example), but then NextMethod 
might fail, in a case where an object has a complicated class vector.

This is basically a limitation of the S3 class system.  The S4 system 
can do much more careful checking.

Duncan Murdoch
3 days later
#
That wouldn't be a problem if the check was implemented in
subset.data.frame, would it?

Hadley

--
Chief Scientist, RStudio
http://had.co.nz/
#
On 13-07-11 12:59 PM, Hadley Wickham wrote:
Suppose the class vector is c("myclass", "data.frame").  Then 
subset.myclass would be called first if it existed.  It might do some 
simple computation and then use NextMethod.  It should not need to know 
that it is calling subset.data.frame next, so it will pass all of its 
arguments along, possibly including some that subset.data.frame should 
ignore.

Duncan Murdoch