[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