Skip to content

Deleting multiple rows from a data matrix based on exp value

4 messages · Dennis Murphy, Peter Davidsen, R. Michael Weylandt

#
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:
or
The above commands seem to work fine when I generate a small "test" matrix like:
However, non of the two commands decrease the number of rows in my real matrix!

Any help would be appreciated

Kind regards,
Peter
#
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:
#
Hi,

Thanks for the quick reply.
However, your suggestion doesn't solve the problem I'm afraid (i.e
dim(Matrix) still the same). What I want is to reduce the number of
rows (probesets) markedly based on their normalized intensity - thus
I've chosen a cut-off of 1.11

When I run your code (as well as mine listed in my previous mail) R
just give me a very long list (in two columns) with the probeset names
as well as the expression value in column 17 (I've 25 columns in total
in my data matrix).
I have tried to generate a small matrix (4 rows and 3 colums) to test
your code... when I type head(Matrix) it looks ok (now only 3 rows as
expected), but when I type dim(matrix) it still states 4 rows and 3
colums...?

NB: When I write 'exp value' I mean log transformed, background
corrected expression values derived from Affy chips (I used the
'justRMA' command to read my CEL files and compute an expression
measure)

Kind regards,
Peter
On Mon, Nov 21, 2011 at 05:09, Dennis Murphy <djmuser at gmail.com> wrote:
#
Inline.
On Mon, Nov 21, 2011 at 5:41 AM, Peter Davidsen <pkdavidsen at gmail.com> wrote:
How is normalized intensity calculated for a given row?
Just jumping into this one mid-stream so my comments might be entirely
off base: if its a 4x3 matrix and you use dim() on it, what would you
have expected instead? dim returns the dimensions of an array, here
just the matrix size....your confusion might be easier for us to
interpret with some code or at least a copy of the console output.
Personally, I'm (much) more surprised that head() on a 4x3 matrix
gives a result of only 3 rows.

When you get your working example up, the easiest way to post it to
the list is to use the dput() function to get a plain text
representation.

Best,
Michael