比较列中的数字

时间:2014-04-01 12:59:41

标签: r matrix

我有一个data.frame:

    > dput(head(tbl_all2))
structure(list(`Gene name` = structure(1:6, .Label = c("a2p1u8", 
"a2qab2", "a6zl23", "a6zlf3", "a6zq61", "a6ztx1", "a6zw47", "a6zya9", 
"a7a095", "a7a0l4", "b2g4d8", "b2g4i6", "b2g4p9", "b2g4u5", "b2zbw7", 
"b3lgx6", "b3lh69", "b3lha4", "b3ljq6", "b3llk0", "b3lp17", "b3ltm6", 
"b5vdr5", "b5ve00", "b5ve47", "b5ve66", "b5ve75", "b5vea8", "b5ved3", 
"b5vej5", "b5vfh0", "b5vfm0", "b5vfq6", "b5vg00", "b5vgm8", "b5vgw4", 
"b5vh77", "b5vi95", "b5vif4", "b5vik7", "b5vik8", "b5viu6", "b5vj32", 
"b5vjc2", "b5vji2", "b5vk65", "b5vkc9", "b5vkd1", "b5vkr2", "b5vkr3", 
"b5vl55", "b5vl71", "b5vla9", "b5vlc1", "b5vln1", "b5vlr4", "b5vm13", 
"b5vm96", "b5vmw7", "b5vn73", "b5vnb6", "b5vnc3", "b5vnj1", "b5vnk1", 
"b5vp33", "b5vp56", "b5vpx6", "b5vq26", "b5vq44", "b5vq52", "b5vqk3", 
"b5vrj3", "b5vrz5", "b5vs89", "b5vsy8", "c7gni0", "c7gq32", "c7gqn5", 
"c7gtn6", "c7gu46", "c7gwe7", "c7gxt0", "c8z669", "c8z6f5", "c8z6r4", 
"c8z6v4", "c8zbm1", "c8zcu8", "c8zd16", "c8zhg0", "e7k9a7", "e7k9i7", 
"e7ka19", "e7ka28", "e7kag3", "e7kak7", "e7kau5", "e7kb37", "e7kbg6", 
"e7kbp6", "e7kde5", "e7kdf5", "e7kdl8", "e7kec6", "e7kek6", "e7ker2", 
"e7kez8", "e7kfj1", "e7kg86", "e7kgg6", "e7kgj9", "e7kgm9", "e7kh79", 
"e7khz2", "e7kid1", "e7kid2", "e7kij3", "e7kip9", "e7kiv1", "e7kj59", 
"e7kjc9", "e7kjz8", "e7kkg8", "e7kks4", "e7kkx7", "e7klq2", "e7km62", 
"e7kmw1", "e7kni6", "e7knq6", "e7knx6", "e7kp09", "e7kps9", "e7kql6", 
"e7kqt5", "e7kr71", "e7krc8", "e7krj9", "e7krs0", "e7ks72", "e7ksf4", 
"e7ksg0", "e7ksv0", "e7ku26", "e7kui4", "e7kuz1", "e7kv21", "e7kvp5", 
"e7lr73", "e7lrn1", "e7ls46", "e7ls63", "e7lsa7", "e7lsk8", "e7lsm3", 
"e7lsy6", "e7lte7", "e7ltk1", "e7ltv7", "e7lu34", "e7lun6", "e7lup5", 
"e7lux5", "e7lv27", "e7lw21", "e7lw44", "e7lwa5", "e7lwl6", "e7lwm3", 
"e7lx88", "e7lxj7", "e7lxn8", "e7lxp5", "e7ly02", "e7lyz3", "e7lz85", 
"e7lzh7", "e7lzn6", "e7m129", "e7ney3", "e7nf47", "e7nfe5", "e7nfq5", 
"e7nfz0", "e7ng34", "e7nh47", "e7nh77", "e7nhb2", "e7nhq7", "e7nie7", 
"e7nii6", "e7nir5", "e7nje2", "e7njk4", "e7njv1", "e7nk19", "e7nk28", 
"e7nkm6", "e7nl37", "e7nl74", "e7nlc7", "e7nlm1", "e7nlr2", "e7nlt8", 
"e7nm31", "e7nm99", "e7nmz4", "e7nn89", "e7npc6", "e7q121", "e7q1a1", 
"e7q1e1", "e7q1k7", "e7q1t1", "e7q1x8", "e7q2c3", "e7q2x6", "e7q3f3", 
"e7q3m4", "e7q3x2", "e7q4c4", "e7q4i8", "e7q5g3", "e7q5l9", "e7q5p8", 
"e7q6a9", "e7q6d5", "e7q800", "e7q814", "e7q825", "e7q833", "e7q8i6", 
"e7q8q5", "e7q8r1", "e7q8u9", "e7q8y1", "e7qbg0", "e7qcc5", "e7qcf3", 
"e7qd66", "e7qdy4", "e7qdy8", "e7qe39", "e7qf79", "e7qfn0", "e7qgb5", 
"e7qh38", "e7qh57", "e7qh90", "e7qhj0", "e7qhj7", "e7qhk8", "e7qi53", 
"e7qi89", "e7qii2", "e7qiq0", "e7qiv9", "e7qje4", "e7qjm1", "e7qjn3", 
"e7qjz3", "e7qka0", "e7qkh1", "e7qki3", "e7ql07", "e7ql23", "e7ql56", 
"e7qle4", "e7qlh7", "e7qlm1", "e7qlq3", "e9p8k6", "e9p9c8", "e9p9h6", 
"e9p9y2", "f8ka88", "g1uaw4", "g2w8j6", "g2wax6", "g2wbs0", "g2wbt1", 
"g2wc37", "g2we94", "g2weh9", "g2wej8", "g2wf31", "g2wgt2", "g2whe0", 
"g2wi84", "g2wlm2", "g2wmh7", "g2wmk0", "g2wnc9", "h0gc43", "h0gc45", 
"h0gc46", "h0gc71", "h0gcc4", "h0gce3", "h0gce7", "h0gcg9", "h0gcx2", 
"h0gd06", "h0gd44", "h0gd98", "h0gda5", "h0gda8", "h0gdj5", "h0gdq8", 
"h0gdr5", "h0gdt8", "h0ger5", "h0geu6", "h0gf09", "h0gf24", "h0gf63", 
"h0gfb9", "h0gfx9", "h0gg75", "h0ggk6", "h0ggy4", "h0gh33", "h0gh37", 
"h0ghf6", "h0ghg0", "h0ghh6", "h0ghk6", "h0gig2", "h0gim1", "h0giq8", 
"h0gir4", "h0gj73", "h0gk02", "h0gk39", "h0gk56", "h0gkc0", "h0gkh0", 
"h0gl26", "h0gl41", "h0gle1", "h0glz7", "h0gm98", "h0gmi5", "h0gmp1", 
"h0gmp4", "h0gms2", "h0gmz5", "h0gn89", "h0gp57", "h0gp81", "h0gp99", 
"h0gpm9", "h0gq90", "h0gqv1", "h0gqv6", "h0gr16", "h0gr46", "h0gr62", 
"h0grh5", "h0grj7", "h0grp5", "h0gru2", "h0gry2", "h0grz3", "h0gs82", 
"h0gs88", "h0gsa9", "h0gsk0", "h0gsl8", "h0gsu6", "h0gtf9", "h0gti8", 
"h0gtn2", "h0gts6", "h0gu87", "h0gug5", "h0guj4", "h0gur2", "h0gut3", 
"h0guu5", "h0gux5", "h0gv21", "h0gv78", "h0gvm9", "h0gvn0", "h0gw05", 
"h0gw07", "h0gwi0", "h0gwr8", "h0gx56", "h0gx58", "h0gx70", "h0gx75", 
"h0gxf9", "h0gxg6", "h0gxy4", "h0gxz9", "h0gy93", "h0gys0", "h0gyu8", 
"h0gyz2", "h0gz20", "h0gzc0", "h0gzd5", "h0gzx8", "h0h061", "h0h0j5", 
"h0h0s1", "h0h0t9", "h0h1f1", "h0h1m4", "h0h1r9", "h0h1t7", "h0h216", 
"h0h220", "h0h251", "h0h294", "h0h2j1", "i7ji35", "i7ktc2", "n1nwq1", 
"n1nxi5", "n1ny73", "n1nyf2", "n1nyt5", "n1nyw8", "n1nz14", "n1nzs8", 
"n1p080", "n1p0a4", "n1p0i3", "n1p0w1", "n1p1a9", "n1p1r0", "n1p242", 
"n1p2s1", "n1p2s2", "n1p3w6", "n1p4p6", "n1p4q6", "n1p4r9", "n1p548", 
"n1p5a6", "n1p5i1", "n1p605", "n1p7b3", "n1p858", "n1p8d9", "n1p8f8", 
"n1p8l5", "n1p910", "n1pa29", "n1pa30", "o13429", "o13516", "o14455", 
"o14467", "o43137", "p00358", "p00359", "p00360", "p00431", "p00445", 
"p00498", "p00549", "p00560", "p00635", "p00729", "p00812", "p00815", 
"p00817", "p00830", "p00890", "p00899", "p00924", "p00925", "p00931", 
"p00942", "p00950", "p00958", "p01120", "p01123", "p02309", "p02400", 
"p02406", "p02557", "p02829", "p02992", "p02994", "p03962", "p03965", 
"p04037", "p04046", "p04050", "p04076", "p04147", "p04161", "p04456", 
"p04801", "p04802", "p04806", "p04807", "p05150", "p05317", "p05318", 
"p05319", "p05373", "p05694", "p05737", "p05738", "p05739", "p05740", 
"p05743", "p05744", "p05745", "p05747", "p05749", "p05750", "p05755", 
"p05756", "p05759", "p06101", "p06106", "p06168", "p06169", "p06174", 
"p06208", "p06244", "p06367", "p06634", "p06738", "p07149", "p07170", 
"p07172", "p07244", "p07245", "p07246", "p07256", "p07257", "p07258", 
"p07259", "p07260", "p07262", "p07263.2", "p07264", "p07274", 
"p07275", "p07277", "p07281", "p07283", "p07284", "p07285", "p07560", 
"p07702", "p07703", "p07806.2", "p07884.2", "p07991", "p08465", 
"p08518", "p08524", "p08536", "p08566", "p09064", "p09436", "p09624", 
"p09733", "p09734", "p09880", "p09938", "p0c2h7", "p0c2h8", "p0cs90", 
"p0ct05", "p0cx11", "p0cx24", "p0cx26", "p0cx30", "p0cx32", "p0cx34", 
"p0cx36", "p0cx38", "p0cx40", "p0cx42", "p0cx44", "p0cx48", "p0cx50", 
"p0cx52", "p0cx54", "p0cx56", "p0cx83", "p0cx85", "p10081", "p10127", 
"p10356", "p10591", "p10592", "p10594.2", "p10659", "p10664", 
"p10869", "p10964", "p11076", "p11154", "p11353", "p11412", "p11484", 
"p11745", "p12612", "p12630", "p12709", "p12904", "p12945", "p13188", 
"p13298", "p13663", "p14065", "p14120", "p14126", "p14127", "p14306", 
"p14540", "p14743", "p14832", "p14843", "p14904", "p15019", "p15108", 
"p15180", "p15202", "p15303", "p15424", "p15454", "p15496", "p15624", 
"p15625", "p15646", "p15703", "p15705", "p15790", "p15873", "p15992", 
"p16120", "p16140", "p16370", "p16387", "p16467", "p16474", "p16550", 
"p16603", "p16649", "p16861", "p17076", "p17255", "p17423", "p17505", 
"p17555", "p17649", "p17709", "p17967", "p18544", "p18562", "p18962", 
"p19097", "p19262", "p19414", "p19454", "p19812", "p19881", "p19882", 
"p20081", "p20133", "p20433", "p20434", "p20436", "p20459", "p20967", 
"p21242", "p21243", "p21524", "p21801", "p21826", "p22023", "p22108", 
"p22138", "p22141", "p22146", "p22202", "p22203", "p22217", "p22336", 
"p22515", "p22696", "p22803", "p23180", "p23248", "p23254", "p23301", 
"p23638", "p23639", "p23724", "p23776", "p24000", "p24280", "p24521", 
"p24783", "p24859", "p25036", "p25043", "p25293", "p25328", "p25332", 
"p25359", "p25373", "p25375", "p25443", "p25451", "p25491", "p25567", 
"p25572", "p25631", "p25632", "p25638", "p25654", "p25694", "p25719", 
"p26321", "p26637", "p26755", "p26783", "p26784", "p26785", "p26786", 
"p27466", "p27472", "p27476", "p27614", "p27616", "p27929", "p28000", 
"p28241", "p28272", "p28273", "p28274", "p28319", "p28495", "p28707", 
"p28777", "p28834", "p29311", "p29453", "p29509", "p29547", "p29952", 
"p30402", "p30656", "p30657", "p30952", "p31115", "p31116", "p31209", 
"p31373", "p31383", "p31412", "p31539", "p31688", "p32178", "p32179", 
"p32288", "p32324", "p32327", "p32337", "p32347", "p32356", "p32377", 
"p32379", "p32381", "p32445", "p32452", "p32459", "p32460", "p32461", 
"p32469", "p32471", "p32474", "p32481", "p32485", "p32486", "p32495", 
"p32497", "p32527", "p32529", "p32558", "p32565", "p32582", "p32589", 
"p32590", "p32598", "p32604", "p32614", "p32626", "p32628", "p32643", 
"p32656", "p32767", "p32771", "p32774", "p32775", "p32835", "p32836", 
"p32860", "p32895", "p32905", "p32939", "p33201", "p33204", "p33298", 
"p33307", "p33312", "p33315", "p33317", "p33327", "p33330", "p33399", 
"p33401", "p33412", "p33416", "p33442", "p33734", "p34162", "p34167", 
"p34223", "p34227", "p34760", "p35176", "p35184", "p35189", "p35195", 
"p35691", "p35719", "p35844", "p36008", "p36010", "p36015", "p36017", 
"p36018", "p36037", "p36047", "p36060", "p36069", "p36104", "p36136", 
"p36156", "p36159", "p36421", "p37012", "p37254", "p37291", "p37292", 
"p37302", "p37303", "p37898", "p38009", "p38011", "p38013", "p38061", 
"p38066", "p38067", "p38071", "p38075", "p38081", "p38088.2", 
"p38109", "p38113", "p38115", "p38145", "p38197", "p38199", "p38203", 
"p38205", "p38237", "p38254", "p38260", "p38328", "p38331", "p38431", 
"p38439", "p38523", "p38555", "p38616", "p38620", "p38623", "p38625", 
"p38627", "p38628", "p38687", "p38688", "p38693", "p38697", "p38698", 
"p38701", "p38707", "p38710", "p38711", "p38715", "p38716", "p38754", 
"p38764", "p38765", "p38774", "p38777", "p38787", "p38788", "p38791", 
"p38792", "p38797", "p38804", "p38820", "p38840", "p38841", "p38858", 
"p38861", "p38879", "p38882", "p38888", "p38891", "p38902", "p38930", 
"p38972", "p38986", "p38999", "p39076", "p39079", "p39522", "p39676", 
"p39683", "p39692", "p39708", "p39714", "p39721", "p39929", "p39939", 
"p39954", "p39958", "p39976", "p39979", "p39988", "p39990", "p40011", 
"p40016", "p40029", "p40032", "p40037", "p40043", "p40047", "p40054", 
"p40069", "p40070", "p40075", "p40087", "p40089", "p40106", "p40185", 
"p40302", "p40354", "p40363", "p40414", "p40422", "p40454", "p40459", 
"p40495", "p40498", "p40506", "p40509", "p40510", "p40531", "p40545", 
"p40553", "p40581", "p40586", "p40825.2", "p41057", "p41058", 
"p41277", "p41338", "p41752", "p41805", "p41811", "p41816", "p41835", 
"p41895", "p41896", "p41920", "p41921", "p41939", "p41940", "p42935", 
"p42936", "p42941", "p42943", "p43561", "p43567", "p43583", "p43590", 
"p43593", "p43616", "p43621", "p46151", "p46654", "p46655", "p46669", 
"p46672", "p46680", "p46948", "p46959", "p46969", "p46990", "p47008", 
"p47079", "p47089", "p47095", "p47096", "p47103", "p47117", "p47119", 
"p47120", "p47164", "p47173", "p47176", "p47771", "p48164", "p48362", 
"p48363", "p48445", "p48526", "p48567", "p48589", "p49017", "p49089", 
"p49090", "p49166", "p49167", "p49367", "p49435", "p49723", "p49775", 
"p49954", "p49957", "p50086", "p50094", "p50095", "p50101", "p50264", 
"p50861", "p50946", "p51401", "p51601", "p51996", "p52488", "p52489", 
"p52910", "p52918", "p53072", "p53090", "p53095", "p53110", "p53111", 
"p53128", "p53144", "p53164", "p53177", "p53183", "p53184", "p53196", 
"p53221", "p53228", "p53235", "p53255", "p53256", "p53265", "p53270", 
"p53303", "p53315", "p53319", "p53334", "p53342", "p53598", "p53615", 
"p53633", "p53720", "p53727", "p53731", "p53759", "p53834", "p53839", 
"p53848", "p53909", "p53912", "p53920", "p53980", "p53981", "p54113", 
"p54114", "p54115", "p54838", "p54839", "p54885", "p60010", "p80210", 
"p83774", "p87262", "p89886", "q00055", "q00618", "q00711", "q00764", 
"q00955", "q01855", "q02326", "q02455", "q02642", "q02648", "q02725", 
"q02821", "q02892", "q02933", "q03034", "q03048", "q03102", "q03161", 
"q03262", "q03280", "q03532", "q03558", "q03629", "q03677", "q03690", 
"q03771", "q03774", "q03940", "q04066", "q04119", "q04120", "q04175", 
"q04178", "q04212", "q04225", "q04336", "q04401", "q04409", "q04430", 
"q04432", "q04491", "q04533", "q04636", "q04660", "q04728", "q04792", 
"q04894", "q04947", "q04951", "q05016", "q05022", "q05506", "q05515", 
"q05533", "q05583", "q05636", "q05778", "q05788", "q05905", "q05911", 
"q05933", "q05946", "q05979", "q06053", "q06103", "q06137", "q06146", 
"q06151", "q06252", "q06338", "q06385", "q06406", "q06408", "q06440", 
"q06494", "q06523", "q06608", "q06624", "q06625", "q06672", "q06706", 
"q07381", "q07505", "q07527", "q07532", "q07551", "q07589", "q07648", 
"q07938", "q08162", "q08220", "q08245", "q08421", "q08634", "q08647", 
"q08686", "q08745", "q08920", "q08924", "q08952", "q08971", "q08977", 
"q08985", "q12008", "q12009", "q12040", "q12074", "q12091", "q12109", 
"q12118", "q12122", "q12123", "q12159", "q12168", "q12189", "q12211", 
"q12242", "q12277", "q12283", "q12306", "q12314", "q12329", "q12335", 
"q12341", "q12363", "q12377", "q12400", "q12408", "q12414", "q12434", 
"q12447", "q12449", "q12455", "q12458", "q12460", "q12464", "q12496", 
"q12522", "q12525", "q12680", "q3e754", "q3e792", "q3e7x9", "q3e7y3", 
"q6fjy0_cangasimilartouniprot", "q6fl72_cangasimilartouniprot", 
"q6fmr2_cangasimilartouniprot", "q6fns7_cangasimilartouniprot", 
"q6fph8_cangasimilartouniprot", "q6fpi1_cangasimilartouniprot", 
"q6fpn8_cangasimilartouniprot", "q6fpp1_cangasimilartouniprot", 
"q6fr31_cangasimilartouniprot", "q6frs2_cangasimilartouniprot", 
"q6fst2_cangasimilartouniprot", "q6ftb3_cangasimilartouniprot", 
"q6ftj1_cangasimilartouniprot", "q6ftk5_cangasimilartouniprot", 
"q6fvr0_cangasimilartouniprot", "q6fwr8_cangasimilartouniprot", 
"q6fx34_cangasimilartouniprot", "q6fxu9_cangasimilartouniprot", 
"q6q560", "q74z16", "q74z48", "q74zf6", "q74zm9", "q750e3", "q750u5", 
"q750z7", "q751d8", "q752q7", "q752w6", "q753p8", "q753t3", "q753w1", 
"q753y2", "q754c8", "q754d6", "q754f6", "q755g1", "q755g8", "q755q5", 
"q756e2", "q756e7", "q756f7", "q756k2", "q756u4", "q756y3", "q757i1", 
"q757l4", "q757n1", "q757y2", "q758l1", "q758t1", "q759a3", "q759a4", 
"q759a9", "q759i7", "q759v7", "q75aa5", "q75bc3", "q75bq6", "q75bv8", 
"q75c57", "q75cf8", "q75cn6", "q75df8", "q75dp6", "q75dq0", "q75ds7", 
"q75du3", "q75dw1", "q75en0", "q75ew2", "q75f01", "q87026", "q8j1f8", 
"q8j2m3", "q8mx29", "q96vh4", "q99210", "q99258", "q99312", "q9p4c2", 
"s4vpl7", "s5s176", "t2a536", "v5rd14"), class = "factor"), `2_1` = c(NA, 
NA, NA, NA, 0.933959669839227, NA), `2_2` = c(NA, NA, NA, NA, 
14.2445924025971, NA), `2_3` = c(NA, NA, NA, NA, 1.84391659829476, 
NA), `2_4` = c(NA, NA, NA, NA, 1, NA), `2_5` = c(NA, NA, NA, 
NA, 0.850344700878792, NA), `2_6` = c(0.0631240804031774, NA, 
NA, 1.11684072808048, 1, 1.29478435854497), `2_7` = c(0.135377134405041, 
NA, NA, 0.941579635959761, 0.389199799282971, 0.705215641455033
), `2_8` = c(0.340634833543641, NA, NA, 1, 0.467857655108082, 
NA), `2_9` = c(1.43325438281299, NA, NA, NA, 0.157821181013907, 
NA), `2_10` = c(1.71425095521776, NA, NA, NA, 0.382740802185421, 
NA), `2_11` = c(0.715532320539672, NA, NA, NA, NA, NA), `2_12` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_13` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_14` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_15` = c(1.72759758284943, 
NA, NA, NA, NA, NA), `2_16` = c(1.71289858010354, NA, NA, NA, 
NA, NA), `2_17` = c(0.747888289194788, 1, NA, NA, NA, NA), `2_18` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_19` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_20` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_21` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_22` = c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), `2_23` = c(NA, 
NA, 1.29452015085474, NA, NA, NA), `2_24` = c(NA, NA, 0.852739924572629, 
NA, NA, NA)), .Names = c("Gene name", "2_1", "2_2", "2_3", "2_4", 
"2_5", "2_6", "2_7", "2_8", "2_9", "2_10", "2_11", "2_12", "2_13", 
"2_14", "2_15", "2_16", "2_17", "2_18", "2_19", "2_20", "2_21", 
"2_22", "2_23", "2_24"), row.names = c(NA, 6L), class = "data.frame")
> 

我将只使用一个我想要实现的例子:

tbl_all2:

Gene     2_1   2_2   2_3   2_4  
a2p1u8   Na     3     5     1
a2qab2   2      5     3     Na
a6zl23   4      Na    1     Na
a6zlf3   Na     Na     3     1

我想逐列比较数字并将“结果”放在新矩阵中。我想如何比较它们。让我们从第一行开始(Gene a2p1u8)。 第一和第二列(2_1和2_2)。首先是Na(它是0),在第二列中数字更高/更大。所以在新矩阵中我想放1.接下来我将比较第二和第三列(2_2和2_3)第三列中的数字大于第二列中的数字所以我必须将新矩阵中的1替换为0第二列,并在第三列中放置1。现在第三个>第四,所以我在第三列留下1,第四列我把0。

New matrix:
Gene     2_1   2_2   2_3   2_4  
a2p1u8   0      0     1     0
a2qab2   0      1     0     0
a6zl23   1      0     1     0
a6zlf3   0      0     1     0

我已经创建了一个新矩阵:

## Create empty matrix ##
vec_name <- colnames(tbl_all2[,2:25])
vec_name <- unique(vec_name)

matrix2_1 <- matrix(0, nrow = length(tbl_all2[,1]),ncol =24)
colnames(matrix2_1) <- vec_name
rownames(matrix2_1) <- tbl_all2[,1]

知道我该怎么办吗?我知道它必须在循环中完成,但让我们从一行开始。

1 个答案:

答案 0 :(得分:1)

首先我用tbl_all2[which(is.na(tbl_all2))] <- 0将所有Na改为0 这样比较就容易了。如果元素相等,我不知道你想做什么,所以我写了这样的比较器函数:

## it returns 1 if the second is larger, 0 if 
  fn <- function(a,b,c){
  if(a==b && b==c){return(0)} ## sets to 0 if they are equal
  else if(max(c(a,b,c))==b){return(1)} 
  else {return(0)}
}

然后我在前面和后面添加了一列,以便功能可以顺利运行

mytbl <- cbind(c(0,0,0,0),tbl_all2,c(0,0,0,0))

下一部分将遍历每一行并比较三个元素,如果中间的一个是最大值,则会为其分配零。我只设置i和j的索引在样本中运行,但是为了扩展它:2&lt;我&lt; (ncol-1)和1&lt; j&lt; nrow

a=list()
for (i in 2:5){
  for (j in 1:4){
    print(c(mytbl[j,(i-1)],mytbl[j,i],mytbl[j,(i+1)]))
    a=append(a,(fn(mytbl[j,(i-1)],mytbl[j,i],mytbl[j,(i+1)])))
  }
}

然后将所有结果抛回到一个漂亮的表中

> matrix(a,ncol=4,dimnames=dimnames(tbl_all2))
       2_1 2_2 2_3 2_4
a2p1u8 0   0   1   0  
a2qab2 0   1   0   0  
a6zl23 1   0   1   0  
a6zlf3 0   0   1   0