Hello, I guess, it's a rather simple thing but I cannot find a short way to reduce a matrix, removing all rows and columns having just NA elements. testmatrix <- matrix(nrow=6, ncol=4) testmatrix[2:5,2:3] <- seq(2) > testmatrix [,1] [,2] [,3] [,4] [1,] NA NA NA NA [2,] NA 1 1 NA [3,] NA 2 2 NA [4,] NA 1 1 NA [5,] NA 2 2 NA [6,] NA NA NA NA the new matrix should look like this (by the way, I don't "know" which rows and columns are the one to be deleted... > testmatrix [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 1 [4,] 2 2 Ciao, Antje
Antje wrote:> Hello, > > I guess, it's a rather simple thing but I cannot find a short way to reduce a > matrix, removing all rows and columns having just NA elements. > > testmatrix <- matrix(nrow=6, ncol=4) > testmatrix[2:5,2:3] <- seq(2) > > > testmatrix > [,1] [,2] [,3] [,4] > [1,] NA NA NA NA > [2,] NA 1 1 NA > [3,] NA 2 2 NA > [4,] NA 1 1 NA > [5,] NA 2 2 NA > [6,] NA NA NA NA > > the new matrix should look like this (by the way, I don't "know" which rows and > columns are the one to be deleted... > > > testmatrix > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 1 1 > [4,] 2 2testmatrix[!apply(is.na(testmatrix), 1, all), !apply(is.na(testmatrix), 2, all)] [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 1 [4,] 2 2> Ciao, > Antje > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code. > >-- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
> testmatrix[,1] [,2] [,3] [,4] [1,] NA NA NA NA [2,] NA 1 1 NA [3,] NA 2 2 NA [4,] NA 1 1 NA [5,] NA 2 2 NA [6,] NA NA NA NA> tm1<-testmatrix[,-which(apply(testmatrix,2,function(x)all(is.na(x))))] > tm1[,1] [,2] [1,] NA NA [2,] 1 1 [3,] 2 2 [4,] 1 1 [5,] 2 2 [6,] NA NA> tm2<-tm1[-which(apply(testmatrix,1,function(x)all(is.na(x)))),] > tm2[,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 1 [4,] 2 2 Antje wrote:> > I guess, it's a rather simple thing but I cannot find a short way to > reduce a > matrix, removing all rows and columns having just NA elements. > > testmatrix <- matrix(nrow=6, ncol=4) > testmatrix[2:5,2:3] <- seq(2) > > > testmatrix > [,1] [,2] [,3] [,4] > [1,] NA NA NA NA > [2,] NA 1 1 NA > [3,] NA 2 2 NA > [4,] NA 1 1 NA > [5,] NA 2 2 NA > [6,] NA NA NA NA > > the new matrix should look like this (by the way, I don't "know" which > rows and > columns are the one to be deleted... > > > testmatrix > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 1 1 > [4,] 2 2 >-- View this message in context: http://www.nabble.com/remove-NA-rows-and-columns-tf4192605.html#a11923002 Sent from the R help mailing list archive at Nabble.com.