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

Michael Lawrence lawrence.michael at gene.com
Fri Oct 2 05:54:45 CEST 2015


Change was made. Should dispatch to length and [[ methods.

On Wed, Sep 30, 2015 at 9:37 PM, Hervé Pagès <hpages at fredhutch.org> wrote:

> 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
>

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list