[Rd] unlist strips date class

Hervé Pagès hpages at fredhutch.org
Tue Dec 6 18:56:35 CET 2016

On 12/05/2016 01:05 AM, peter dalgaard wrote:
> On 02 Dec 2016, at 23:13 , Hervé Pagès <hpages at fredhutch.org> wrote:
>> More generally one might reasonably expect 'unlist(x)' to be equivalent
>> to 'do.call(c, x)' on a list 'x' where all the list elements are atomic
>> vectors:
> Well, both are generic, and e.g. there is no "Date" method for unlist(), but there is for c(). It is not clear that the two should be kept in lockstep and there is certainly no mechanism to enforce that.

If unlist() was based on c(), or c() was based on unlist(), or
unlist() and c() were sharing more code internally, then they would
naturally be kept in lockstep and you wouldn't need any mechanism to 
enforce that.

Note that the arguments of the default S3 method for c() are:

   c(..., recursive = FALSE, use.names = TRUE)

i.e. exactly the same as unlist() (except for the default value).
This suggests that implementing one on top of the other is kind of a
natural thing to do.


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 R-devel mailing list