Java Mailing List Archive

http://www.r-help.com/

Home » Home (12/2007) » R Help for Statistical Computing »

AW: [R] Compare rows of two matrices

TEMPL Matthias

2005-02-21


Excellent. That was very helpful. Now I have full control about my NA?s :-)
Thank you very much!!!
Matthias

>
> Here is an another way
>
>   count <- is.na(x) + is.na(y)
>   which( count == 1, arr.ind=TRUE )
>
> 'count' gives you the number of missing values at for each
> row and column. Then you can find out how many occurances of
> both missing, none missing and one missing.
>
>
>
> On Mon, 2005-02-21 at 15:48 +0100, TEMPL Matthias wrote:
> > Hello,
> >
> > #I have two matrices, eg.:
> >
> > y <- matrix( c(20, NA, NA, 45, 50, 19, 32, 101, 10,
> 22, NA,
> > NA, 80, 49, 61, 190), ncol=4 ) x <- matrix( c(20, NA,
> NA, NA,
> > 50, 19, 32, 101, 10, 22, NA, NA, 80, 49, 61, 190), ncol=4 )
> >
> > #Whereas x contains all NA?s from y plus some additional
> NA?s. #I want
> > to find the index of these additional NA?s. I think, there
> must be a
> > very easy way to do this.
> >
> > #Here are the indices of NA?s in x and y:
> > l1 <- which(is.na(x), arr.ind=TRUE)
> > l2 <- which(is.na(y), arr.ind=TRUE)
> >
> > #> l1
> > #   [,1] [,2]
> > #[1,]   2   1
> > #[2,]   3   1
> > #[3,]   4   1
> > #[4,]   3   3
> > #[5,]   4   3
> >
> > #> l2
> > #   row col
> > #[1,]  2  1
> > #[2,]  3  1
> > #[3,]  3  3
> > #[4,]  4  3
> >
> > #Now I want to find a matrix, which includes the values of
> l1, without
> > the rows of l2,
> > #which has equal entities (the index of the additional NA?S).
> > #In this example the result should be row 3 of l1 with the
> values 4 and 1..
> > #The following code works, but I think there must be a much
> more elegant way to do this.
> >
> > l3 <- l1
> > l3 <- cbind( l1, rep(0, nrow(l1)) )
> > num <- 1
> >  
> > for( i in 1:nrow(l1) ){
> >  for( j in 1:nrow(l2) ){
> >   if( l1[i,1] == l2[j,1] & l1[i,2] == l2[j,2]){
> >     l3[i,3] <- 1
> >   }
> >  }
> > }
> >
> > l4 <- l3[l3[,3]==0, c(1,2)]
> >
> > #> l4
> > #row col
> > # 4  1
> >
> > I have often such problems like this and I assume, that
> other people
> > have similar tasks. My question is: Does anybody know a function in
> > one package, which compares rows of two matrices like this or have
> > anybody an idea to do this in a much more elegant way"?
> >
> > Thank you very much,
> > Matthias
> >
> > ______________________________________________
> > R-help@(protected)
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >
>

______________________________________________
R-help@(protected)
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
©2008 r-help.com - Jax Systems, LLC, U.S.A.