Dear R experts,
 
I have 3 matrices - "Mx", "My" and "geno" that have the same exact dimensions 
(attached).  I want to calculate a expression matrix (ME) of the same dimension 
as well. It is a little complicated.
 
To calculate and for a specific cell in ME,  e.g. ME[2,2],
 
 if value of geno[2,2] is 0, ME[2,2]=Mx[2,2]+My[2,2];
 if value of geno[2,2] is 1, ME[2,2]=the larger number of Mx[2,2] and My[2,2]
 if value of geno[2,2] is NA, ME[2,2]=NA
 
I tried to make codes below, but did not work and got stuck. I was wondering if 
anyone could help with better coding.
 
Thanks in advance,
Zhengyu
 
-----------------------------------------------   
 
Mx <-  read.table("Mx.txt",header=TRUE, sep="\t", na.strings="NA", dec=".", 
strip.white=TRUE)
My <-  read.table("My.txt",header=TRUE, sep="\t", na.strings="NA", dec=".", 
strip.white=TRUE)
geno <-  read.table("geno.txt",header=TRUE, sep="\t", na.strings="NA", dec=".", 
strip.white=TRUE)
 
#Calculate Exp for geno==0
ind=which(geno==0,arr.ind=T)
het=Mx+My
ME=matrix(het,nrow=nrow(geno),ncol=ncol(geno))
ME[ind]=het[ind]
 
#Calculate Exp for geno==1
ind=which(geno==1,arr.ind=T)
hom=apply(M1,c(1:2),function(x)max(M1[],M2[]))# error
ME=matrix(hom,nrow=nrow(geno),ncol=ncol(geno))
ME[ind]=hom[ind]
 
# I think the first calculation (geno==0) will be replaced but I don't know how 
to keep them.
 
> head(Mx)
   X1cX X2cX  X3cX  X4cX X5cX X6cX X7cX X8cX
1 26383 6252 14319 16421 2225  480 2038 1164
2   636  310   351   341  218  656  412  267
3   301  299   752   236  239  309  283  195
4  1016 1046  1364   782  822  274  437  346
5  1261 1272  1076  1037  659  337 1143 1195
6   609  414   393   459  215  429  566  236

> dim(Mx)
[1] 20  8

> head(My)
   X1cY X2cY X3cY X4cY X5cY X6cY X7cY X8cY
1  1039  233  408  607  275 1837 1319  149
2  7146 1706 2248 2346 1596  544 2696  417
3   266  425 1186  214  325  369  377  215
4   260  282  238  240  264  265  317  203
5  1070 1052  746  613  384  447  456  683
6 13032 1708 2328 5998 2529  923 1068  145

> dim(My)
[1] 20  8

> head(geno)
  P1 P2 P3 P4 P5 P6 P7 P8
1 NA NA NA NA  1 NA NA NA
2  1  1  1  1  1  1  1  1
3  1  1  0  0  0  0  1  0
4  1  1  1  1  1  1  0  0
5  0  0  0  0  0  0  1  0
6 NA NA NA NA NA NA NA NA

> dim(geno)
[1] 20  8



                                                                                
  
X1cX    X2cX    X3cX    X4cX    X5cX    X6cX    X7cX    X8cX
26383   6252    14319   16421   2225    480     2038    1164
636     310     351     341     218     656     412     267
301     299     752     236     239     309     283     195
1016    1046    1364    782     822     274     437     346
1261    1272    1076    1037    659     337     1143    1195
609     414     393     459     215     429     566     236
1150    394     478     662     430     430     511     168
503     414     328     340     348     609     242     235
701     1629    569     447     472     247     705     646
1478    923     1447    1623    1243    830     1212    2819
2511    914     1553    1834    497     567     537     528
1551    622     789     361     245     192     269     480
406     543     503     370     322     421     205     265
442     553     538     295     162     391     220     258
543     106     344     332     442     286     235     205
394     317     223     192     99      290     251     269
433     492     672     278     373     329     562     709
354     292     424     382     218     333     254     279
1863    1823    1176    785     552     332     471     212
496     285     307     363     170     471     381     623
X1cY    X2cY    X3cY    X4cY    X5cY    X6cY    X7cY    X8cY
1039    233     408     607     275     1837    1319    149
7146    1706    2248    2346    1596    544     2696    417
266     425     1186    214     325     369     377     215
260     282     238     240     264     265     317     203
1070    1052    746     613     384     447     456     683
13032   1708    2328    5998    2529    923     1068    145
18068   8188    7103    13441   8262    4016    5952    259
221     201     175     178     156     142     234     133
399     643     389     1953    225     638     483     396
1578    2284    1283    1724    1476    1458    1186    508
488     506     460     679     509     288     489     407
538     340     694     594     137     281     223     230
852     314     266     181     169     152     226     249
291     180     219     89      120     167     110     152
168     212     125     203     313     339     280     239
256     111     203     138     117     163     174     145
9721    11517   11662   11110   9392    4029    11070   14861
216     180     183     163     102     153     164     136
216     160     181     271     115     128     154     87
108     148     200     156     154     113     243     239
P1      P2      P3      P4      P5      P6      P7      P8
NA      NA      NA      NA      1       NA      NA      NA
1       1       1       1       1       1       1       1
1       1       0       0       0       0       1       0
1       1       1       1       1       1       0       0
0       0       0       0       0       0       1       0
NA      NA      NA      NA      NA      NA      NA      NA
1       1       1       1       1       1       1       1
0       0       0       1       0       0       1       0
1       1       1       1       1       1       1       1
NA      1       NA      NA      NA      NA      NA      1
1       1       1       1       1       1       1       1
1       0       0       1       0       1       1       1
1       0       0       1       0       1       1       0
NA      NA      NA      NA      NA      NA      NA      NA
NA      NA      NA      NA      NA      NA      NA      NA
NA      NA      NA      NA      NA      NA      NA      NA
NA      NA      NA      NA      NA      NA      NA      NA
1       1       0       1       0       1       0       0
NA      NA      NA      NA      NA      NA      NA      NA
NA      NA      NA      NA      NA      NA      NA      NA
______________________________________________
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