Or, these operations can be called in one command: > testmatrix[-which(apply(testmatrix,1,function(x)all(is.na(x)))),-which(apply(testmatrix,2,function(x)all(is.na(x))))] [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 1 [4,] 2 2 >
Vladimir Eremeev wrote: > >> 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#a11923066 Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@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.