Hi everybody! I am sorry to bother you with a question so simple but I think there might be a better solution: I have a matrix of size 360x501 where I want to check the value of each 5th column of each row and replace it (and the 6th, 7th, 8th column) by zero if the value is less than 1000. I have written a double loop to do that but that requires a lot of time. Is there a faster way to achieve this? Thanks, Werner
replace values in a matrix subject to boolean condition
2 messages · Werner Wernersen, Uwe Ligges
Werner Wernersen wrote:
Hi everybody! I am sorry to bother you with a question so simple but I think there might be a better solution: I have a matrix of size 360x501 where I want to check the value of each 5th column of each row and replace it (and the 6th, 7th, 8th column) by zero if the value is less than 1000. I have written a double loop to do that but that requires a lot of time. Is there a faster way to achieve this?
Two ways to interpret your question:
1) if col5 < 100 replace col5 & col6 & col7 & col8 by 0:
X[X[,5] < 1000, 5:8] <- 0
2) if col5 < 100 replace col5 by 0, if col6 < 100 replace col6 by 0, ...:
for(i in 5:8)
X[X[,i] < 1000, i] <- 0
Uwe Ligges
Thanks, Werner
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html