On Jun 2, 2011, at 11:35 AM, Petr Savicky wrote:

On Thu, Jun 02, 2011 at 11:23:28AM -0400, Jim Silverton wrote:
Hi,
Can someone tell me how to remove rows of zeros from a matrix?
For example if I have the following matrix,

0 0
0 1
2 8
0 0
4 56

I should end up with
0 1
2 8
4 56

Hi.

Try the following

 a <- matrix(c(0, 0, 2, 0, 4, 0, 1, 8, 0, 56), ncol=2)
 a[rowSums(a != 0) != 0, ]

To avoid removing rows where non-zero elements do sum to 0 one could use the only slightly longer test that first converts "a" to logical:

 a <- matrix(c(1, 0, 2, 0, 4, -1, 1, 8, 0, 56), ncol=2)

 a[ rowSums(a==0) != ncol(a), ]
     [,1] [,2]
[1,]    1   -1
[2,]    0    1
[3,]    2    8
[4,]    4   56

--
David Winsemius, MD
West Hartford, CT

______________________________________________
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