Hello, I’m new at programming and I will greatly appreciate if you can help me with this.
I have a very large matrix (hundreds of rows and columns), with the first raw filled with different numbers (between 0 and 1). The rest of the matrix is filled with values 0, 1, 2. What I need is to replace the values in the matrix (except the first row will has to remain intact). In each column I have to replace value 2 for the value of the first row. Also, I want to replace the values 0 and 1 by -999. I was able to write the loop for a vector but I do not know how to expand the loop to the matrix. Please see these examples For a vector I did this and it works > V = c(0.1,1,0,2) > V [1] 0.1 1.0 0.0 2.0 > for (i in 2:length(V)){if(V[i]==2)V[i]=V[1] + else (V[i]=-999)} > V [1] 0.1 -999.0 -999.0 0.1 For a matrix I could not perform the task. Here it is an example of a small matrix and the expected result, but the original has more rows and columns. > matr <- matrix(c(0.1,1,0,2,0.5,1,2,2), nrow=4, ncol=2) > matr [,1] [,2] [1,] 0.1 0.5 [2,] 1.0 1.0 [3,] 0.0 2.0 [4,] 2.0 2.0 > matr.expectedresult= matrix(c(0.1,-999,-999,0.1,0.5,-999,0.5,0.5), nrow=4, > ncol=2) > matr.expectedresult [,1] [,2] [1,] 0.1 0.5 [2,] -999.0 -999.0 [3,] -999.0 0.5 [4,] 0.1 0.5 Thank you very much Paula ______________________________________________ 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.