Re: [Rd] pairlist objects

From: Simon Urbanek <simon.urbanek_at_r-project.org>
Date: Tue, 2 Oct 2007 13:55:00 -0400

On Oct 1, 2007, at 10:28 PM, hpages_at_fhcrc.org wrote:

> ?pairlist gives no explanation about what exactly is the difference
> between a pairlist and a list (except that a pairlist of length 0
> is 'NULL'). So, what's a pairlist?
>

I read "traditional _dotted pair_ lists (as in LISP)" there - c.f. also http://cran.r-project.org/doc/manuals/R-lang.html#Pairlist-objects

> class(.Options)
> [1] "pairlist"
>
> Some strange things about the "pairlist" type:
>
>> showClass("pairlist")
> Error in getClass(Class) : "pairlist" is not a defined class
>
> Why the above doesn't work?

Because "pairlist" is not a formal class. Why should it?

> It works for "list":
>
>> showClass("list")
>
> No Slots, prototype of class "list"
>
> Extends: "vector"
>
>> is.list(.Options)
> [1] TRUE
>
>> is.vector(.Options)
> [1] FALSE
>
> This doesn't make sense! If 'x' is a list, then it should be
> considered a vector too.
>

Why? They are completely different objects. lists are generic vectors, pairlists are not vectors (c.f. the docs above).

> Subsetting a pairlist with [] doesn't produce a pairlist:
>
>> class(.Options[1:3])
> [1] "list"
>
> Yes, this one is documented, but still...
>

As the docs say, on R level pairlists are usually converted to vectors as the use of pairlists is deprecated.

Cheers,
Simon



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue 02 Oct 2007 - 18:00:59 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 25 Oct 2007 - 11:37:10 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.