[R] Is a list an atomic object? (or is there an issue with the help page of ?tapply ?)

Hadley Wickham h.wickham at gmail.com
Mon Feb 20 17:04:58 CET 2017


On Mon, Feb 20, 2017 at 7:31 AM, Martin Maechler
<maechler at stat.math.ethz.ch> wrote:
>>>>>> Hervé Pagès <hpages at fredhutch.org>
>>>>>>     on Tue, 14 Feb 2017 17:10:05 -0800 writes:
>
>     > Hi, tapply() will work on any object 'X' that has a length
>     > and supports single-bracket subsetting. These objects are
>     > sometimes called "vector-like" objects. Atomic vectors,
>     > lists, S4 objects with a "length" and "[" method,
>     > etc... are examples of "vector-like" objects.
>
>     > So instead of saying
>
>     >    X: an atomic object, typically a vector.
>
>     > I think it would be more accurate if the man page was
>     > saying something like
>
>     >    X: a vector-like object that supports subsetting with
>     > `[`, typically an atomic vector.
>
> Thank you, Hervé!
>
> Actually (someone else mentioned ?)
> only   length(X) and  split(X, <group>)   need to work,
> and as split() itself is an S3 generic function,  X can be even
> more general... well depending on how exactly you understand
> "vector-like".
>
> So I would go with
>
>        X: an R object for which a ‘split’ method exists.  Typically
>           vector-like, allowing subsetting with ‘[’.

I think technically tapply() should be using NROW() check that X and
INDEX are compatible. That would make it more compatible with split()
semantics.

Hadley

-- 
http://hadley.nz



More information about the R-help mailing list