Re: [R] replace values in a matrix subject to boolean condition

From: Uwe Ligges <ligges_at_statistik.uni-dortmund.de>
Date: Thu 24 Mar 2005 - 20:34:43 EST

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@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



R-help@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 Received on Thu Mar 24 20:39:07 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:55 EST