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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)