[R] Deleting columns from a matrix

Dimitris Rizopoulos d.rizopoulos at erasmusmc.nl
Sun May 24 19:22:56 CEST 2009


one way is:

mat <- 
matrix(c(rep(NA,10),1,2,3,4,5,6,7,8,9,10,10,9,8,NA,6,5,4,NA,2,1,rep(NA,10),1,2,3,4,NA,6,7,8,9,10), 
10, 5)
ind <- colSums(is.na(mat)) != nrow(mat)
mat[, ind]


I hope it helps.

Best,
Dimitris


dxc13 wrote:
> useR's,
> I have a matrix given by the code:
> mat <-
> matrix(c(rep(NA,10),1,2,3,4,5,6,7,8,9,10,10,9,8,NA,6,5,4,NA,2,1,rep(NA,10),1,2,3,4,NA,6,7,8,9,10),10,5)
> 
> This is a 10x5 matrix containing missing values.  All columns except the
> second contain missing values.  I want to delete all columns that contain
> ALL missing values, and in this case, it would be the first and fourth
> columns.  Any column that has at least one real number would remain. I know
> I can use "mat[,-1]" to delete the first column, but I have a much larger
> matrix where it is impossible to tell how many columns contain all missing
> values and which don't.  
> Is there a function or something else that may be able to help me accomplish
> this?
> 
> Thanks in advance.
> dxc13 

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014




More information about the R-help mailing list