Date: Mon, 21 May 2012 00:17:10 +1000
From: Nevil Amos<nevil.amos at monash.edu>
To:r-help at r-project.org
Subject: [R] removeing only rows/columns with "na" value from square (
symmetrical ) matrix.
Message-ID:
<CAGUDtZJOW7x3sjZsnqf7uAQN6gKFg+EMqq=-HBqKgcwgGaJu6g at mail.gmail.com>
Content-Type: text/plain
I have some square matrices with na values in corresponding rows and
columns.
M<-matrix(1:2,10,10)
M[6,1:2]<-NA
M[10,9]<-NA
M<-as.matrix(as.dist(M))
print (M)
1 2 3 4 5 6 7 8 9 10
1 0 2 1 2 1 NA 1 2 1 2
2 2 0 1 2 1 NA 1 2 1 2
3 1 1 0 2 1 2 1 2 1 2
4 2 2 2 0 1 2 1 2 1 2
5 1 1 1 1 0 2 1 2 1 2
6 NA NA 2 2 2 0 1 2 1 2
7 1 1 1 1 1 1 0 2 1 2
8 2 2 2 2 2 2 2 0 1 2
9 1 1 1 1 1 1 1 1 0 NA
10 2 2 2 2 2 2 2 2 NA 0
How do I remove just the row/column pair( in this trivial example row 6 and
10 and column 6 and 10) containing the NA values?
so that I end up with all rows/ columns that are not NA - e.g.
1 2 3 4 5 7 8 9
1 0 2 1 2 1 1 2 1
2 2 0 1 2 1 1 2 1
3 1 1 0 2 1 1 2 1
4 2 2 2 0 1 1 2 1
5 1 1 1 1 0 1 2 1
7 1 1 1 1 1 0 2 1
8 2 2 2 2 2 2 0 1
9 1 1 1 1 1 1 1 0
if i use na omit I lose rows 1,2,6, and 9
which is not what I want.
thanks
-- Nevil Amos Molecular Ecology Research Group Australian Centre for
Biodiversity Monash University CLAYTON VIC 3800 Australia
[[alternative HTML version deleted]]