From Kurt.Hornik@ci.tuwien.ac.at  Fri Jan 16 20:29:04 1998
From: Kurt.Hornik@ci.tuwien.ac.at (Kurt Hornik)
Date: Fri, 16 Jan 1998 21:29:04 +0100
Subject: data.frame(...) not constructing "1:n" row.names [diff.  S <--> R]
In-Reply-To: <x2lnwgcloz.fsf@blueberry.kubism.ku.dk>
References: <199801161812.TAA09746@sophie.ethz.ch>
 <x2lnwgcloz.fsf@blueberry.kubism.ku.dk>
Message-ID: <199801162029.VAA17133@pc25.none>

>>>>> Peter Dalgaard BSA writes:

> Martin Maechler <maechler@stat.math.ethz.ch> 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.

-k
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


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