[R] overlaying the values of tab-delim file in to a pre-existing matrix

Srinivas Iyyer srini_iyyer_bio at yahoo.com
Sun Jul 30 17:18:10 CEST 2006


Hello :

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. Tab-delim file has smaller values than the
matrix. 

Matrix = tmat
tab-delim file read as data.frame = tb



My aim is to read in a line in # Apple, S , 21. 
Find column Apple and row S and fill the value 21.




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 read as a data.frame
     V1  V2  V3
1  Apple  S  21
2  Apple  A  21.6
3  Apple  O  43
4 Orange  A  45
5 Orange  O  64
6 Orange  S  32.5
7  Mango  M  40.3 
8  Mango  A  32.6
9  Mango  S  24.6


Now I have to fill in the values in tb (V3) into tmat.


For instance, (Apple, S) pair value is 21, I want 


     Apple Orange Mango Grape Star
A     21.6   0     0     0    0
O     0      0     0     0    0
M     0      0     0     0    0
G     0      0     0     0    0
S     21     0     0     0    0




> tbm <- as.matrix(tb)
>
tmat[cbind(match(tbm[,2],rownames(tmat)),match(tbm[,1],colnames(tmat)))]
<-tbm[,3]
Error: NAs are not allowed in subscripted assignments


I am using R.2.2.1 on a 
Dell Latutite windows XP with 1GB RAM. 

Could any one please help me whats wrong with above
code. 

thank you.



More information about the R-help mailing list