On 10/15/2015 11:24 AM, Michael Lawrence wrote:
Btw, a subtle issue here is that elementLengths currently calls NROW(),
not length(), and code might be relying on DataFrameList returning row
counts. That behavior has proven convenient, so it would be nice not to
lose it. I guess nrow() already does that, but anyway, lengths() is not
the equivalent of elementLengths() there.

There is actually a big note in ?BiocGenerics::lengths about this.
This means we will need to keep elementLengths() around but the plan
is to rename it elementNROWS() (consistent with extractROWS). The
current name is clearly a misnomer and a source of confusion.

H.


On Wed, Sep 30, 2015 at 9:37 PM, Hervé Pagès <hpa...@fredhutch.org
<mailto:hpa...@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
        <hpa...@fredhutch.org <mailto:hpa...@fredhutch.org>
        <mailto:hpa...@fredhutch.org <mailto:hpa...@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.hic...@gmail.com <mailto:peter.hic...@gmail.com>
        <mailto:peter.hic...@gmail.com <mailto:peter.hic...@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@r-project.org <mailto:Bioc-devel@r-project.org>
        <mailto:Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>>
                     mailing list
        https://stat.ethz.ch/mailman/listinfo/bioc-devel


                          [[alternative HTML version deleted]]

                 _______________________________________________
        Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
        <mailto:Bioc-devel@r-project.org <mailto:Bioc-devel@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: hpa...@fredhutch.org <mailto:hpa...@fredhutch.org>
        <mailto:hpa...@fredhutch.org <mailto:hpa...@fredhutch.org>>
             Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
        <tel:%28206%29%20667-5791>
             Fax: (206) 667-1319 <tel:%28206%29%20667-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: hpa...@fredhutch.org <mailto:hpa...@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: hpa...@fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to