R语言的merge函数

R中的merge函数类似于Excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。与Excel不同之处在于merge函数有4种匹配拼接模式,分别为inner,left,right和outer模式。 其中inner为默认的匹配模式,可与sql语言中的join语句用法。

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"),
      incomparables = NULL, ...)

  

    • merge函数参数的说明:
    • x,y 要合并的两个数据集
    • by,用于连接两个数据集的列,intersect(a,b)值向量a,b的交集,names(x)指提取数据集x的列名 
      by = intersect(names(x), names(y)) 是获取数据集x,y的列名后,提取其公共列名,作为两个数据集的连接列, 当有多个公共列时,需用下标指出公共列,如names(x)[1],指定x数据集的第1列作为公共列 
      也可以直接写为 by = ‘公共列名’ ,前提是两个数据集中都有该列名,并且大小写完全一致,R语言区分大小写
    • by.x,by.y:指定依据哪些行合并数据框,默认值为相同列名的列
    • all,all.x,all.y:指定x和y的行是否应该全在输出文件
    • sort:by指定的列(即公共列)是否要排序
    • suffixes:指定除by外相同列名的后缀
    • incomparables:指定by中哪些单元不进行合并
    • 举例说明如下

      1、创建数据

    •  

       

       

       

       

       

    •  

       

    • # 连接列置于第1列; 有多个公共列,在公共列后加上x,y表示数据来源,.x表示来源于数据集w,.y表示来源于数据集q 
      # 数据集中w中的 name = ‘D’ 不显示,数据集中q中的 name = ‘F’ 不显示,只显示公有的name行,并且用q数据集A行匹配了w数据集所有的A行

      6、outer 模式,将两张表的数据汇总,表中原来没有的数据置为空

    • # 连接列置于第1列; 有多个公共列,在公共列后加上x,y表示数据来源,.x表示来源于数据集w,.y表示来源于数据集q 
      # 数据集中w中的 name = ‘D’ 不显示,数据集中q中的 name = ‘F’ 不显示,只显示公有的name行,并且用q数据集A行匹配了w数据集所有的A行
    • 6、outer 模式,将两张表的数据汇总,表中原来没有的数据置为空
    • http://www.cnblogs.com/li-20151130/p/9028634.html
    • https://blog.csdn.net/OYY_90/article/details/82431085
posted @ 2022-07-10 20:50  菜鸡一枚QAQ  阅读(4774)  评论(0)    收藏  举报