From Kurt.Hornik@ci.tuwien.ac.at  Wed Feb  7 16:13:29 2001
From: Kurt.Hornik@ci.tuwien.ac.at (Kurt Hornik)
Date: Wed, 7 Feb 2001 17:13:29 +0100
Subject: [Rd] RE: [R] Removing "row.names"
In-Reply-To: <x2g0hqbhqs.fsf@blueberry.kubism.ku.dk>
References: <200102071105.LAA08910@achill.nmrc.ucc.ie>
 <NEBBJKDJHEFCOOLFFAKKIEMFCAAA.cyg@sympatico.ca>
 <14977.28086.8858.910911@mithrandir.hornik.net>
 <x2g0hqbhqs.fsf@blueberry.kubism.ku.dk>
Message-ID: <14977.29737.623121.566627@mithrandir.hornik.net>

>>>>> Peter Dalgaard BSA writes:

> Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> writes:
>> names(sampled) <- " "
>> and
>> dimnames(sampled)[[2]] <- " "
>> 
>> happily introduce non-unique variable names in the data frame.
>> 
>> Is the rule that row.names and names must be unique still on?
>> 
>> Argh ...

> Splus 3.4 dispatches on dimnames<-, but not on names<- with the
> following curious result:

>> d <- data.frame(a=1:3,b=4:6)
>> names(d)<-c(" "," ")
>> d
      
> 1 1 4
> 2 2 5
> 3 3 6
>> dimnames(d)[[1]] <- rep(" ",3)  
> Error in "dimnames<-.data.frame"(d, .A0): column names must be unique
> Dumped

> R dispatches similarly, but doesn't check the dimnames in
> dimnames<-.data.frame. It could do so quite easily. Just add 

> || any(duplicated(d[[1]])) || any(duplicated(d[[2]]))

> at the appropriate spot.

Thomas' view about what should be permitted seems to be different.

Also note that the convenience functions for name manipulation such as
variable.names typically do their own little thing and do not go via
dimnames.

-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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] RE: [R] Removing "row.names"
Kurt Hornik