>>>>> Hervé Pagès <hpa...@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 ‘[’. Martin > H. > On 02/04/2017 04:17 AM, Tal Galili wrote: >> In the help page of ?tapply it says that the first >> argument (X) is "an atomic object, typically a vector." >> >> However, tapply seems to be able to handle list >> objects. For example: >> >> ################### >> >> l <- as.list(1:10) is.atomic(l) # FALSE index <- >> c(rep(1,5),rep(2,5)) tapply(l,index,unlist) >> >>> tapply(l,index,unlist) >> $`1` [1] 1 2 3 4 5 >> >> $`2` [1] 6 7 8 9 10 >> >> >> ################### >> >> Hence, does it mean a list an atomic object? (which I >> thought it wasn't) or is the help for tapply needs >> updating? (or some third option I'm missing?) >> >> Thanks. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.