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.