[R] removing invariant columns from a matrix

Roger D. Peng rpeng at jhsph.edu
Mon Aug 30 00:07:48 CEST 2004


See question 7.7 in the R FAQ 
(http://cran.r-project.org/doc/FAQ/R-FAQ.html)

-roger

Moises Hassan wrote:
> 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]
>>
>> 
>>
> 
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list