[R] removing invariant columns from a matrix

Moises Hassan mhassan at scitegic.com
Mon Aug 30 00:00:50 CEST 2004


It works great, except that in the case where only one column is left,
it returns a vector and the column name is lost. How can you avoid that
behavior?

Thanks,
   - Moises


-----Original Message-----
From: Spencer Graves [mailto:spencer.graves at pdf.com] 
Sent: Saturday, August 28, 2004 8:26 PM
To: Peter Dalgaard
Cc: Moises Hassan; R Help
Subject: Re: [R] removing invariant columns from a matrix

      Both the previous solutions seem to assume a numeric matrix.  How 
about the following: 

A <- array(letters[c(rep(1, 13), rep(2, 13), 1:26)], dim=c(13, 5))
A[, apply(A, 2, function(x)any(x[-1] != x[-length(x)]))]
      A[, apply(A, 2, function(x)any(x[-1] != x[-length(x)])]

      enjoy.  spencer graves

Peter Dalgaard wrote:

>"Moises Hassan" <mhassan at scitegic.com> writes:
>
>  
>
>>I'm looking for an efficient way of removing zero-variance columns
from
>>a large matrix.
>>
>>Any suggestions?
>>    
>>
>
>A[,apply(A,2,var)>0]
>
>  
>




More information about the R-help mailing list