[Rd] dimnames(X)[[2]] <- foo fails (PR#1122)
Peter Dalgaard BSA
p.dalgaard@biostat.ku.dk
09 Oct 2001 17:35:43 +0200
ripley@stats.ox.ac.uk writes:
> Since this works in recent S-PLUS and is not in the FAQ as a difference, I
> presume it is an unintentional one. If it is intentional, this is for the
> wishlist that this be removed.
>
> S-PLUS (6.0)
> > X <- matrix(1:4, 2, 2)
> > dimnames(X)[[2]] <- letters[1:2]
> > X
> a b
> [1,] 1 3
> [2,] 2 4
>
> R 1.3.1
> > X <- matrix(1:4, 2, 2)
> > dimnames(X)[[2]] <- letters[1:2]
> Error: more elements supplied than there are to replace
> > colnames(X) <- 1:2
> > dimnames(X)[[2]] <- letters[1:2]
> > X
> a b
> [1,] 1 3
> [2,] 2 4
>
> which is none too obvious an error message, and somewhat inconsistent.
Hmm. This is a consequence of
> x<-NULL
> x[[2]]<- letters[1:2]
Error: more elements supplied than there are to replace
which S-PLUS does differently. However, I'm not sure we really want
this to change for the following reason:
> x<-NULL
> x[[2]]<- letters[1:2]
> x
$"":
NULL
$value:
[1] "a" "b"
> x<-NULL
> x[[2]]<-"1"
> x
[1] "" "1"
Now what does this do if the array extent has length 1?
> x <- matrix(1:2,2)
> dimnames(X)[[2]] <- "a"
Problem in dimnames(X) <- .A0: Component 2 of dimnames has length 1, should be 2
Use traceback() to see the call stack
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._