Try this:

apply(gc2, 2, function(x) ifelse(x < 0.1*median(x), NA, x)}

ifelse is the vectorized operation you are probably looking for.

Michael

On Fri, Feb 3, 2012 at 6:17 PM,  <brann...@mskcc.org> wrote:
> Hello,
>
> I'm trying to replace any value within a column where the value is less than 
> 10% of the median of the column with NA.  In other words, if the median of 
> one column is 500, any value in that column that is less than 50 should 
> become NA.
>
> Doing a lot of searches, it seems like I should be using apply.  But when I 
> put the if statement inside like this, I get serious errors:
>
>> test<-apply(gc2,2,function(x){if(x<(0.1*median(x))), NA})
> Error: unexpected ',' in 
> "test<-apply(gc2,2,function(x){if(x<(0.1*median(x))),"
>> test<-apply(gc2,2,function(x){if(x<(0.1*median(x))) NA})
> There were 50 or more warnings (use warnings() to see the first 50)
> In if (x < (0.1 * median(x))) x <- NA :
>  the condition has length > 1 and only the first element will be used
>
> Trying
>> test<-apply(gc2,2,function(x){x[x<(0.1*median(x))]<- NA})
>> head(test)
> NA.01.N NA.01.T NA.02.N NA.02.T NA.03.N NA.03.T
>     NA      NA      NA      NA      NA      NA
>
>
> I'm sure that I could get it to work if I read each column individually into 
> a vector, calculate the median, replace the values if less than 0.1*median, 
> then rebind it into a new matrix.  However, I'm hoping there is a more 
> elegant way.
>
> Do you have any suggestions?
>
>
> Thank you for your help.
> Rose
>
>
>     =====================================================================
>
>     Please note that this e-mail and any files transmitted from
>     Memorial Sloan-Kettering Cancer Center may be privileged, confidential,
>     and protected from disclosure under applicable law. If the reader of
>     this message is not the intended recipient, or an employee or agent
>     responsible for delivering this message to the intended recipient,
>     you are hereby notified that any reading, dissemination, distribution,
>     copying, or other use of this communication or any of its attachments
>     is strictly prohibited.  If you have received this communication in
>     error, please notify the sender immediately by replying to this message
>     and deleting this message, any attachments, and all copies and backups
>     from your computer.
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.

Reply via email to