[Bioc-devel] Adding a lengths() method to List class

Hervé Pagès hpages at fredhutch.org
Thu Oct 1 06:37:58 CEST 2015


On 09/30/2015 05:28 PM, Michael Lawrence wrote:
> It wasn't a conscious choice, but it would slow things down a bit. Not
> by much though, since we're already attempting dispatch on length(). I
> can make the change.

That would be great. Thanks Michael!

H.

>
> On Wed, Sep 30, 2015 at 1:33 PM, Hervé Pagès <hpages at fredhutch.org
> <mailto:hpages at fredhutch.org>> wrote:
>
>     Hi Michael,
>
>     I was expecting this to just work:
>
>        base::lengths(IntegerList(1:4, 1:6))
>
>     but it doesn't:
>
>        Error in base::lengths(IntegerList(1:4, 1:6)) :
>          'x' must be a list or atomic vector
>
>     The man page says:
>
>           This function loops over ‘x’ and returns a compatible vector
>           containing the length of each element in ‘x’.  Effectively,
>           ‘length(x[[i]])’ is called for all ‘i’, so any methods on ‘length’
>           are considered.
>
>     If length(x[[i]]) is called for all i then it should work on any object
>     for which [[ is defined. Note that this is what happens with
>     base::sapply(), base::mapply(), etc... they all use [[ internally.
>
>     Do you know of any reason why lengths() doesn't do this?
>
>     Thanks,
>     H.
>
>
>     On 09/28/2015 09:51 PM, Michael Lawrence wrote:
>
>         That is the plan. Note that we already have elementLengths()
>         that serves
>         the same purpose. It was the direct inspiration for lengths().
>
>         On Mon, Sep 28, 2015 at 9:41 PM, Peter Hickey
>         <peter.hickey at gmail.com <mailto:peter.hickey at gmail.com>>
>         wrote:
>
>             The lengths() function was added in R 3.2 to "get the length
>             of each
>             element of a list or atomic vector (is.atomic) as an integer
>             or numeric
>             vector." It seems useful to me to have also a similar method
>             defined for
>             the S4Vectors::List class (and subclasses). What do others
>             think?
>
>                       [[alternative HTML version deleted]]
>
>             _______________________________________________
>             Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
>             mailing list
>             https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
>
>                  [[alternative HTML version deleted]]
>
>         _______________________________________________
>         Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
>         mailing list
>         https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
>
>     --
>     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: hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>     Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>     Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>
>

-- 
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: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the Bioc-devel mailing list