The problem with Bert's second example is that sum doesn't work on a list. The tapply worked correctly.
> unlist(l[1:5]) [1] 1 2 3 4 5 > sum(l[1:5]) Error in sum(l[1:5]) : invalid 'type' (list) of argument On Tue, Feb 14, 2017 at 8:28 PM, Bert Gunter <bgunter.4...@gmail.com> wrote: > Hervé: > > Kindly explain this, then: > >> l <- as.list(1:10) >> is.atomic(l) # FALSE > [1] FALSE >> index <- c(rep(1,5),rep(2,5)) >> >> >> tapply(l,index,unlist) > $`1` > [1] 1 2 3 4 5 > > $`2` > [1] 6 7 8 9 10 > >> >> ## But >> >> tapply(l,index, sum) > Error in FUN(X[[i]], ...) : invalid 'type' (list) of argument > > Cheers, > Bert > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Tue, Feb 14, 2017 at 5:10 PM, Hervé Pagès <hpa...@fredhutch.org> wrote: >> 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. >> >> 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. >>> >>> >>> >>> >>> >>> ----------------Contact >>> Details:------------------------------------------------------- >>> Contact me: tal.gal...@gmail.com | >>> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | >>> www.r-statistics.com (English) >>> >>> ---------------------------------------------------------------------------------------------- >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> 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. >>> >> >> -- >> Hervé Pagès >> >> Program in Computational Biology >> Division of Public Health Sciences >> Fred Hutchinson Cancer Research Center >> 1100 Fairview Ave. N, M1-B514 >> P.O. Box 19024 >> Seattle, WA 98109-1024 >> >> E-mail: hpa...@fredhutch.org >> Phone: (206) 667-5791 >> Fax: (206) 667-1319 >> >> ______________________________________________ >> 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. > > ______________________________________________ > 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. ______________________________________________ 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.