[R] short way

Torsten Hothorn Torsten.Hothorn at rzmail.uni-erlangen.de
Tue Aug 29 15:01:04 CEST 2000


> i want to replace certain values of a matrix.
> i know how to replace them when the values are in a vector.
> i tried the same way for a matrix and got this answer:
> 
> la[la==0]<-1
> Error in [<-.data.frame(*tmp*, la == 0, value = 1) : 
>         matrix subscripts not allowed in replacement

la is a data.frame, not a matrix: 

R> x <- diag(10)
R> x[x == 0] <- 1
R> x
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1    1    1    1    1    1    1    1    1     1
 [2,]    1    1    1    1    1    1    1    1    1     1
 [3,]    1    1    1    1    1    1    1    1    1     1
 [4,]    1    1    1    1    1    1    1    1    1     1
 [5,]    1    1    1    1    1    1    1    1    1     1
 [6,]    1    1    1    1    1    1    1    1    1     1
 [7,]    1    1    1    1    1    1    1    1    1     1
 [8,]    1    1    1    1    1    1    1    1    1     1
 [9,]    1    1    1    1    1    1    1    1    1     1
[10,]    1    1    1    1    1    1    1    1    1     1
R> x <- as.data.frame(diag(10))
R> x[x == 0] <- 1
Error in [<-.data.frame(*tmp*, x == 0, value = 1) : 
        matrix subscripts not allowed in replacement

so, as.matrix() is what you are looking for ;-)

Torsten


> 
> i found a way to do this with "for()",
> but i think this is the worst way to do it.
> 
> So is there a better way?
> 
>     Thomas J. Pesl
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> 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 at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
> 

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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 at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list