[R] Comparing two matrices [Broadcast]

Liaw, Andy andy_liaw at merck.com
Thu Jul 6 14:36:23 CEST 2006


It might be a bit faster to do matrix indexing:

R> tbm <- as.matrix(tb) # turn it into a character matrix
R> tmat[cbind(match(tbm[,2], rownames(tmat)), match(tbm[,1],
colnames(tmat)))] <- 1
> tmat
  Apple Orange Mango Grape Star
A     1      1     1     0    0
O     1      1     0     0    0
M     0      0     1     0    0
G     0      0     0     0    0
S     1      1     1     0    0

HTH,
Andy
 

From: Srinivas Iyyer
> 
> hi:
> 
> I have matrix with dimensions(200 X 20,000). I have another 
> file, a tab-delim file where first column variables are row 
> names and second column variables are column names. 
> 
> 
> For instance:
> 
> > tmat
>   Apple Orange Mango Grape Star
> A     0      0     0     0    0
> O     0      0     0     0    0
> M     0      0     0     0    0
> G     0      0     0     0    0
> S     0      0     0     0    0
> 
> 
> 
> > tb # tab- delim file. 
>       V1 V2
> 1  Apple  S
> 2  Apple  A
> 3  Apple  O
> 4 Orange  A
> 5 Orange  O
> 6 Orange  S
> 7  Mango  M
> 8  Mango  A
> 9  Mango  S
> 
> 
> I have to read each line of the 'tb' (tab delim file), take 
> the first variable, check if matches any rowname of the 
> matrix. Take the second variable of the row in and check if 
> it matches any column name.  If so,  put
> 1 else leave it. 
> 
> 
> The following is a small piece of code that, I felt is a 
> solutions. However, since my original matrix and tab-delim 
> file is very very huge, I am not sure if it is really doing 
> the correct thing. Could any one please help me if I am doing 
> this correct. 
> 
> 
> 
> > for(i in 1:length(tb[,1])){
> +  r = tb[i,1]
> +  c = as.character(tb[i,2])
> +  tmat[rownames(tmat)==c,colnames(tmat)==r] <-1 }
> 
> 
> 
> > tmat
>   Apple Orange Mango Grape Star
> A     1      1     1     0    0
> O     1      1     0     0    0
> M     0      0     1     0    0
> G     0      0     0     0    0
> S     1      1     1     0    0
> 
> 
> 
> Thanks.
> 
> ______________________________________________
> R-help at 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
> 
>



More information about the R-help mailing list