[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