[Rd] does subset.data.frame need to accept extra arguments?
murdoch.duncan at gmail.com
Mon Jul 8 10:40:41 CEST 2013
On 13-07-07 11:09 PM, Peter Meilstrup wrote:
> The formal list for subset.data.frame accepts a "..."
> function (x, subset, select, drop = FALSE, ...)
> But it appears that subset.data.frame does not actually use the "..." or
> pass it along:
>> "..." %in% all.names(body(subset.data.frame))
>  FALSE
> Is there any reason why subset.data.frame needs to accept extra, unused
> arguments? One recurring error I see myself and other people making in
> interactive use is to type an = instead of an == in a subset call, e.g.
> subset(df, column=value)
> which I think ought to be an error, but it silently returns df instead.
> If "..." were eliminated from the formals of subset.data.frame, it would
> eliminate a frequent user error.
It needs to have ... in the formal argument list because the generic
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.
More information about the R-devel