Re: R-beta: bugs and problems

Peter Dalgaard BSA (p.dalgaard@biostat.ku.dk)
02 Jun 1998 11:40:20 +0200


To: Jim Lindsey <jlindsey@luc.ac.be>
Subject: Re: R-beta: bugs and problems
From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
Date: 02 Jun 1998 11:40:20 +0200
In-Reply-To: Jim Lindsey's message of Tue, 2 Jun 1998 09:12:58 +0200 (MET DST)

Jim Lindsey <jlindsey@luc.ac.be> writes:

> If an MS-DOS file with CRs still in place is (accidently) read into
> R using scan(), an extra zero is added to each line. This can be very
> embarassing!

Are you blaming us or yourself, then? ;)

This looks fairly easy to fix.

> 
> In manipulating repeated measurements data, I generally require
> matrices. Unfortunately, matrix factors create a lot of problems.
> Consider the following simple examples:

This has been changed for 0.62, but I'm afraid not in the direction
you'd want, but in the direction of S-plus compatibility. Basically,
matrix factors don't exist anymore: 

> > x <- as.factor(c("F","N",NA))
> > y <- cbind(x,x)
> > y[,1]
> Error: length of "levels" vector and number of levels differ
> > attributes(y)$levels <- NULL
> > is.factor(y)
> TRUE
> > y[,1]
> F N NA

R> x <- as.factor(c("F","N",NA))
R> y <- cbind(x,x)
R> y[,1]
[1]  1  2 NA
R> is.factor(y)
[1] FALSE

> > rbind(NULL,gl(2,1,2))
> Error in rbind(NULL,gl(2,1,2)): incompatible factors

R> rbind(NULL,gl(2,1,2))
     [,1] [,2]
[1,]    1    2

> 
> 3. To obtain the codes of a factor variable, one uses as.numeric().
> However, this function destroys the properties of the matrix, turning
> it into a vector.

Well...now it also works the other way...:

R> y
     [,1] [,2]
[1,]    1    1
[2,]    2    2
[3,]   NA   NA
R> as.factor(y)
[1] 1  2  NA 1  2  NA
Levels:  1 2 
R> factor(y)
[1] 1  2  NA 1  2  NA
Levels:  1 2 

Actually, a factor can have the dim attribute, but then it doesn't
show up, except in matrix ops and apply where there's an implicit
conversion to integer:

R> r
     [,1] [,2]
[1,]    1    3
[2,]    2    4
R> f<-factor(r)
R> f
[1] 1 2 3 4
Levels:  1 2 3 4 
R> dim(f)<-dim(r)
R> f
[1] 1 2 3 4
Levels:  1 2 3 4 
R> f%*%r
     [,1] [,2]
[1,]    7   15
[2,]   10   22

All this is exactly the same in Splus.

-- 
   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-help 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-help-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._