Dear Berend, Mark, Jose, Arun, Great! Thank you so much for all your replies 
with different codings. They all work well except one - because NAs in matrix A 
need to take care of.   Best,Zhengyu 
 > Subject: Re: [R] Ask for help: find corresponding elements between matrix
> From: b...@xs4all.nl
> Date: Thu, 21 Feb 2013 16:35:08 +0100
> CC: r-help@r-project.org
> To: zhyjiang2...@hotmail.com
> 
> 
> On 21-02-2013, at 15:39, JiangZhengyu <zhyjiang2...@hotmail.com> wrote:
> 
> > Dear R experts,
> > 
> > I have two matrix (seq & mat) & I want to retrieve in a new matrix all the 
> > numbers from mat that =1 (corresponding to the same row/ column position) 
> > in seq, or all the numbers in mat that =-1 in seq. - Replace all the 
> > numbers with NA if it's not 1/-1 in seq.  There are some "NA"s in seq. 
> > 
> > seq=matrix(c(1,-1,0,1,1,-1,0,0,-1,1,1,NA),3,4)
> > mat=matrix(rnorm(12),3)
> > I made this code but I don't know where's the problem..
> > 
> > seq=matrix(c(1,-1,0,1,1,-1,0,0,-1,1,1,NA),3,4)
> > mat=matrix(rnorm(12),3)
> > 
> 
> Something like this
> 
> set.seed(15)
> seq1 <- matrix(c(1,-1,0,1,1,-1,0,0,-1,1,1,NA),3,4)
> mat <- matrix(rnorm(12),3)
> ind <- which(seq1 == 1 | seq1 == -1,arr.ind=TRUE)
> m <- matrix(NA,nrow=nrow(mat),ncol=ncol(mat))
> m[ind] <- mat[ind]
> m
> 
> 
> Output is:
> 
>           [,1]       [,2]       [,3]       [,4]
> [1,] 0.2588229  0.8971982         NA -1.0750013
> [2,] 1.8311207  0.4880163         NA  0.8550108
> [3,]        NA -1.2553858 -0.1321224         NA
> 
> Berend
> 
> 
                                          
        [[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org 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.

Reply via email to