[R] Removing rows of zeros from a matrix
David Winsemius
dwinsemius at comcast.net
Thu Jun 23 13:33:09 CEST 2011
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
More information about the R-help
mailing list