[R] Deleting multiple rows from a data matrix based on exp value

Dennis Murphy djmuser at gmail.com
Mon Nov 21 06:09:27 CET 2011


Without a reproducible example this is just a guess, but try

Matrix[apply(Matrix, 1, function(x) any(x > 1.11)), ]

This will retain all rows of Matrix where at least one value in a row
is above the threshold 1.11. If that doesn't do what you want, please
provide a small reproducible example and a clearer statement of the
desired output. It's not at all clear to me what 'exp. values' means -
I can devise at least three meanings off the top of my head, none of
which may conform to what you mean.

HTH,
Dennis

On Sun, Nov 20, 2011 at 2:45 PM, Peter Davidsen <pkdavidsen at gmail.com> wrote:
> Dear List,
>
> I have a data matrix that consists of ~4500 rows and 25 columns (i.e.
> an exprSet object that I converted via the 'exprs' function into a
> data matrix)
>
> Now I want to remove/delete the rows where all exp. values in that
> particular row are below or equal to a specific cut-off value (e.g
> 1.11)
>
> I have tried using several commands to address this issue:
>>Matrix[rowSums(Matrix <= 1.11) <= 1.11, ]
>
> or
>
>>Matrix[ !apply(Matrix<=1.11,1,all), ]
>
>
> The above commands seem to work fine when I generate a small "test" matrix like:
>>M <- matrix(c(2,5,8,0.4,0.8,0.5,4,12,3), nrow=3, byrow=T)
>
> However, non of the two commands decrease the number of rows in my real matrix!
>
> Any help would be appreciated
>
> Kind regards,
> Peter
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list