From maechler at stat.math.ethz.ch  Thu Feb  1 10:21:19 2018
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Thu, 1 Feb 2018 10:21:19 +0100
Subject: [Rd] as.list method for by Objects
In-Reply-To: <CAOQ5NyeqQCKRKEb6BC8PCV=EojhmjRvqyvkona0hx6mZP8uq0g@mail.gmail.com>
References: <SY3PR01MB07474F9CEBBC61FD2A152E58CDE40@SY3PR01MB0747.ausprd01.prod.outlook.com>
 <CAOQ5NyeqQCKRKEb6BC8PCV=EojhmjRvqyvkona0hx6mZP8uq0g@mail.gmail.com>
Message-ID: <23154.56335.356144.896852@stat.math.ethz.ch>

>>>>> Michael Lawrence <lawrence.michael at gene.com>
>>>>>     on Tue, 30 Jan 2018 10:37:38 -0800 writes:

    > I agree that it would make sense for the object to have c("by", "list") as
    > its class attribute, since the object is known to behave as a list.

Well, but that (list behavior) applies to most non-simple S3
classed objects, say "data.frame", say "lm" to start with real basic ones.

The later part of the discussion, seems more relevant to me.
Adding "list" to the class attribute seems as wrong to me as
e.g. adding "double" to "Date" or "POSIXct" (and many more such cases).

For the present case, we should stay with focusing on  is.list()
being true after as.list() .. the same we would do with
as.numeric() and is.numeric().

Martin

    > However, it would may be too disruptive to make this change at this point.
    > Hard to predict.

    > Michael

    > On Mon, Jan 29, 2018 at 5:00 PM, Dario Strbenac <dstr7320 at uni.sydney.edu.au>
    > wrote:

    >> Good day,
    >> 
    >> I'd like to suggest the addition of an as.list method for a by object that
    >> actually returns a list of class "list". This would make it safer to do
    >> type-checking, because is.list also returns TRUE for a data.frame variable
    >> and using class(result) == "list" is an alternative that only returns TRUE
    >> for lists. It's also confusing initially that
    >> 
    >> > class(x)
    >> [1] "by"
    >> > is.list(x)
    >> [1] TRUE
    >> 
    >> since there's no explicit class definition for "by" and no mention if it
    >> has any superclasses.
    >> 
    >> --------------------------------------
    >> Dario Strbenac
    >> University of Sydney
    >> Camperdown NSW 2050
    >> Australia
    >> 
    >> ______________________________________________
    >> R-devel at r-project.org mailing list
    >> https://stat.ethz.ch/mailman/listinfo/r-devel
    >> 
    >> 

    > [[alternative HTML version deleted]]

    > ______________________________________________
    > R-devel at r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] as.list method for by Objects
Martin Maechler