R语言的merge函数

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

merge 连接两个数据,官方参考文档语法

1
2
3
4
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 @   菜鸡一枚QAQ  阅读(4653)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示