data.frame(...) not constructing "1:n" row.names [diff. S <--> R]

Kurt Hornik
Fri, 16 Jan 1998 21:29:04 +0100

>>>>> Peter Dalgaard BSA writes:

> Martin Maechler <> writes:
>> [I think Doug Bates has already alluded to this, somewhere..]

And I did, too ...

>> In R, 	data.frame( ... )
>> does not construct row.names whereas in S, it does:
> ...
>> R core: Is there a good reason for this?

> No.
>> Well (as a member of R-core, I give my answer):
>> Memory efficiency can be a good reason, actually...
>> together with ``cleanness'' :  
>> ``1:n'' are the IMPLICIT DEFAULT row.names
>> We could stay at the current way `internally',
>> but make sure that all functions working on data.frames `d.f'
>> automatically work as if
>> row.names(d.f)   *was indeed* ==  paste(1:nrow(d.f)

> Ugh. Please, let's avoid implicit stuff. All the special-casing
> involved all over the place would soon outweigh the saved storage of a
> character vector. We'll get nothing but trouble from it. Just add the
> rownames. 

Yes.  Does R- simply add a default 1:n for the row names if there are
none?  Then we should do the same.

r-devel mailing list -- Read
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: