美文网首页
‘匹配’究竟多重要-R(merge)|Excel(vlookup

‘匹配’究竟多重要-R(merge)|Excel(vlookup

作者: Juan_NF | 来源:发表于2019-04-26 15:49 被阅读0次
    • 什么时候觉得Office真是牛呢?当上游给我的分析数据中只有实验编号,而下游care的却是真实的患者信息的时候;当然,在茫茫data中一直Ctrl+F、Ctrl+C、Ctrl+V,重复那么几百次也是可以做到的;如果你真的这么做了,那么就是迟早的事了;vlookup啊,一个公式解决所有繁琐,Excel中的无尽宝藏真是值得我们探索!!!
    • 什么时候觉得R很牛呢?当多个大名鼎鼎的数据库都有自己独树一帜的命名方式(ID转换这种事情简直是数据挖掘入门第一课),而我需要把它们一一匹配起来才能往下分析的时候,R里的merge简直是在这热不死人的广东里如空调一样救命的发明!!!

    实操很重要(我这里并没有演示ID转换,着实同理;但我上面说的重要性是真的),我用到的文件给到你:

    Run_info_table
    R-merge
    merge(x, y, by = intersect(names(x), names(y)),
          by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
          sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,
          incomparables = NULL, ...)
    
    • x,y 带匹配的数据框
    • merge这个函数里的by.x,by.y,all.x,all.y这几个参数很重要哦!!!all.x是指,以x为准,x里的所有行都要匹配上,如果在y里没有匹配到就拿NA来补。all.y同理;
    rm(list = ls())
    options(stringsAsFactors = F)
    a=read.table('yourpath/SraRunTable.txt',sep = '\t',header = T)
    b=read.csv('yourpath/Rtest/sample.csv')
    tmp<-merge(a,b,by.x='Sample_Name',by.y='Accession')
    head(tmp)
    
    Excel-vlookup

    因为SraRunTable.txt中的数据列数太多,为了演示方便我把后面的列删掉了

    VLOOKUP($G2,sample!$A$2:$L$769,2,0)
    VLOOKUP($G2,sample!$A$2:$L$769,3,0)
    VLOOKUP($G2,sample!$A$2:$L$769,4,0)
    
    • lookup_value 检索时用来匹配的值
    • table_array 需要匹配出来的结果的范围
    • col_index_num 需要匹配出来的具体内容位于table_array中lookup_value后的第几列
    • range_lookup 0(精确匹配)或1(近似匹配)
    • $表示限制,放在行前面即行数不变,放在列前面同理;
    • 第一行公式写完后,选中,鼠标放在末尾有个+号,双击产生所有查询的结果;

    课程分享
    生信技能树全球公益巡讲
    https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
    B站公益74小时生信工程师教学视频合辑
    https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
    招学徒:
    https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw

    相关文章

      网友评论

          本文标题:‘匹配’究竟多重要-R(merge)|Excel(vlookup

          本文链接:https://www.haomeiwen.com/subject/dncqnqtx.html