HI, If it is value Inf, you could also use ?is.infinite()
x<-matrix(c(Inf,1,2,3,Inf,5,6,7,Inf),nrow=3) x[is.infinite(x)]<-0 x # [,1] [,2] [,3] #[1,] 0 3 6 #[2,] 1 0 7 #[3,] 2 5 0 A.K. ----- Original Message ----- From: Rui Barradas <ruipbarra...@sapo.pt> To: Nick Duncan <nickd...@gmail.com> Cc: r-help@r-project.org Sent: Wednesday, November 14, 2012 7:14 PM Subject: Re: [R] Replacing string in matrix with zero Hello, I doubt your Inf is a string, R does have the numeric value Inf (and -Inf), just try 1/0. As for the question, x <- matrix(1:9, ncol = 3) diag(x) <- 1/0 x x[x == Inf] <- 0 x Note that it could also be diag(x) <- 0 Hope this helps, Rui Barradas Em 14-11-2012 22:13, Nick Duncan escreveu: > Dear All, > > I have a matrix in which the diagonal has the string "Inf" in it. In > order to be able to do cluster analysis this needs to be replaced with > a Zero. > I can do this by putting it into Excel, replacing and putting it back > into R but it's tedious, and I am sure there is a simple way to do it > in R. > If you have the route to do this, it would be much appreciated. > Best wishes > Nick Duncan > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.