[R] matrix matching NA

Fabian Lienert flienert at student.ethz.ch
Wed Mar 1 15:26:05 CET 2006


Dear list members,

Berwin gave me the right hint, it works!
Look at this:
## R Code
a <- (1:5)
a[2] <- NA
b <- (6:10)
b[3] <- NA

a
     1  NA  3  4  5
b
     6  7  NA  9 10

matrix <- array(1:5*2, dim=c(5,2))
matrix[,1] <- a
matrix[,2] <- b

matrix[ !apply(is.na(matrix), 1, any),]

     [,1] [,2]
[1,]    1    6
[2,]    4    9
[3,]    5   10

## /R Code

Cheers,

Fabian


Berwin A Turlach wrote:
> G'day Fabian,
> 
> 
>>>>>>"FL" == Fabian Lienert <flienert at student.ethz.ch> writes:
> 
> 
>     FL> ## R Code
>     FL> awithoutan <- a[(1:length(a))[(!is.na(a))&(!is.na(b))]]
> a[(!is.na(a))&(!is.na(b))] ## works too
> 
>     FL> bwithoutan <- b[(1:length(b))[(!is.na(a))&(!is.na(b))]]
> b[(!is.na(a))&(!is.na(b))] ## ditto
> 
>     FL> How can I do the same matching in a matrix and get a matrix without NA
>     FL> elements (and less colums of course)?
> 
>     FL> matrix <- array(1:5*2, dim=c(5,2))
> Not a good name, since matrix is also a function, could lead to
> confusion in more complicated situations. :)
> 
>     FL> matrix[,1] <- a
>     FL> matrix[,2] <- b
>     FL> matrix[,][(!is.na(matrix[,]))]
> 
>>matrix[ !apply(is.na(matrix), 1, any), ]
> 
>      [,1] [,2]
> [1,]    1    6
> [2,]    4    9
> [3,]    5   10 
> 
> Hope this helps.
> 
> Cheers,
> 
>         Berwin
> 


-- 
Beste Grüsse,

Fabian Lienert

--
pgp public key: http://lienert.org/keys/lienert.asc




More information about the R-help mailing list