[R] remove NA rows and columns
Vladimir Eremeev
wl2776 at gmail.com
Tue Jul 31 14:21:23 CEST 2007
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.
More information about the R-help
mailing list