返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言 数据表匹配和拼接 merge函数的使用
  • 120
分享到

R语言 数据表匹配和拼接 merge函数的使用

2024-04-02 19:04:59 120人浏览 薄情痞子
摘要

R中的merge函数类似于excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。 merge(x, y, by = intersect(names(x), na

R中的merge函数类似于excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。


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, ...)

x,y:用于合并的两个数据框

by,by.x,by.y:用于连接两个数据集的列,intersect(a,b)值向量a,b的交集,names(x)指提取数据集x的列名 by = intersect(names(x), names(y)) 是获取数据集x,y的列名后,提取其公共列名,作为两个数据集的连接列, 当有多个公共列时,需用下标指出公共列,如names(x)[1],指定x数据集的第1列作为公共列 也可以直接写为 by = ‘公共列名' ,前提是两个数据集中都有该列名,并且大小写完全一致,R语言区分大小写

all,all.x,all.y:指定x和y的行是否应该全在输出文件.

sort:by指定的列是否要排序.

suffixes:指定除by外相同列名的后缀.

incomparables:指定by中哪些单元不进行合并.

merge函数有4种匹配拼接模式,分别为inner,left,right和outer模式。 其中inner为默认的匹配模式。all=T代表全连接,all.x=T代表左联结;all.y=T代表右连接

inner 模式匹配,只显示两个数据集公共列中均有的行

# 有多个公共列时,需指出使用哪一列作为连接列merge(x,y,by=intersect(names(x)[1],names(y)[1]))

# 当两个数据集连接列名称同时,直接用by.x,by.y 指定连接列merge(x,y,by.x ='name',by.y ='name')

# 当两个数据集均有连接列时,直接指定连接列的名称merge(x,y,by='name')

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


merge(x, y, all=TRUE, sort=TRUE)

# all = TRUE 表示选取x, y 数据集的所有行,sort = TRUE,表示按 by 列进行排序,默认升序

left 匹配模式


merge(x ,y,all.x=TRUE,sort=TRUE)

# 多个公共列 末指定连接列 ,左连接,设置 all.x = TRUE,结果只显示数据x的列及x在y数据集中没有的列

merge(x, y, by = 'name',all.x = TRUE, sort = TRUE) # 多个公共列 指定连接列指, 左连接,设置 all.x = TRUE,结果只显示x所有names(x)[1]值

right 匹配模式


merge(x ,y ,by='name',all.y=TRUE,sort=TRUE) 

# 多个公共列指定连接列# 左连接,设置all.y =TRUE,结果只显示y所有names(y) [1] 值的记录

补充:R语言subset和merge函数的使用

1、merge函数对数据框的操作

从两个数据框中选择出条件相等的行组合成一个新的数据框


df1=data.frame(name=c("aa","bb","cc"),age=c(20,29,30),sex=c("f","m","f"))
df2=data.frame(name=c("dd","bb","cc"),age=c(40,35,36),sex=c("f","m","f"))
mergedf=merge(df1,df2,by="name")

2、subset函数

从某一个数据框中选择出符合某条件的数据或是相关的列

(1)单条件查询


> selectresult=subset(df1,name=="aa")
> selectresult
 name age sex
1  aa 20  f
> df1
 name age sex
1  aa 20  f
2  bb 29  m
3  cc 30  f

(2)指定显示列


> selectresult=subset(df1,name=="aa",select=c(age,sex))
> selectresult
 age sex
1 20  f

(3)多条件查询


> selectresult=subset(df1,name=="aa" & sex=="f",select=c(age,sex))
> selectresult
 age sex
1 20  f
> df1
 name age sex
1  aa 20  f
2  bb 29  m
3  cc 30  f

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: R语言 数据表匹配和拼接 merge函数的使用

本文链接: https://lsjlt.com/news/122473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • R语言 数据表匹配和拼接 merge函数的使用
    R中的merge函数类似于Excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。 merge(x, y, by = intersect(names(x), na...
    99+
    2024-04-02
  • R语言中数据表匹配和拼接merge函数的使用方法
    小编给大家分享一下R语言中数据表匹配和拼接merge函数的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!R中的merge函数类似于Excel中的Vlook...
    99+
    2023-06-14
  • R语言中的merge函数怎么使用
    在R语言中,merge函数用于合并两个数据框(data frame)。该函数的一般用法如下: merged_df <- mer...
    99+
    2024-03-04
    R语言
  • R语言中cbind、rbind和merge函数的使用与区别
    cbind: 根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a、c的行数必需相符 rbind: 根据行进行...
    99+
    2024-04-02
  • R语言中cbind、rbind和merge函数怎么使用与区别
    本篇内容介绍了“R语言中cbind、rbind和merge函数怎么使用与区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!cbind: 根据...
    99+
    2023-06-08
  • 使用R中merge()函数合并数据的方法
    目录使用R中merge()函数合并数据如何使用merge()获取数据集中交叉部分如何理解不同类型的合并如何实现完整合并(full outer join)总结使用R中merge()函数...
    99+
    2023-03-19
    R merge()函数合并数据 R merge()函数 R合并数据
  • 如何使用R中的merge()函数合并数据
    本篇内容主要讲解“如何使用R中的merge()函数合并数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用R中的merge()函数合并数据”吧!使用R中merge()函数合并数据在R中可以...
    99+
    2023-07-05
  • R语言列表和数据框的具体使用
    目录1.列表1.1创建1.2 访问 1.3 注意2.数据框2.1 创建2.2 访问1.列表 列表“list”是一种比较的特别的对象集合,不同的序号对...
    99+
    2024-04-02
  • R语言列表和数据框怎么使用
    本篇内容主要讲解“R语言列表和数据框怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“R语言列表和数据框怎么使用”吧!1.列表列表“list”是一种比较的特别的对象集合,不同的序号对于不同的...
    99+
    2023-06-26
  • R语言中assign函数和get函数的用法
    assign函数在循环时候,给变量赋值,算是比较方便 1、给变量赋值 for (i in 1:(length(rowSeq)-1)){ assign(paste("nginx...
    99+
    2024-04-02
  • r语言median函数如何使用
    在R语言中,可以使用`median()`函数来计算一组数据的中位数。以下是使用`median()`函数的方法:1. 对向量使用`me...
    99+
    2023-09-15
    r语言
  • r语言annotate函数如何使用
    在R语言中,annotate()函数用于在绘图中添加注释。它的基本语法如下:annotate(text, x, y, ...)其中,...
    99+
    2023-09-13
    r语言
  • r语言colnames函数怎么使用
    在R语言中,colnames()函数用于获取或设置数据框或矩阵的列名。下面是colnames()函数的使用方法: 获取列名:使用c...
    99+
    2023-10-23
    r语言
  • R语言中assign函数和get函数怎么用
    这篇文章主要介绍了R语言中assign函数和get函数怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系...
    99+
    2023-06-14
  • R语言-生成频数表和列联表crosstable函数介绍
    列联表crosstable 列联表不仅可以用来做简单的描述性统计,还可以在机器学习中用来比较识别正确率,FPR,TPR等等数据,以便我们比较不同的ML模型 or 调参。 2x2列联表...
    99+
    2024-04-02
  • R语言数据框合并(merge)的几种方式小结
    merge data frames (inner, outer, left, right) 数据 > df1 = data.frame(CustomerId = c(1:...
    99+
    2024-04-02
  • R语言中怎么利用sapply函数提取列表中的数据
    R语言中怎么利用sapply函数提取列表中的数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。y<-c("100-D","100-A&quo...
    99+
    2023-06-02
  • r语言中的filter函数怎么使用
    在R语言中,`filter()`函数是`dplyr`包中的函数,用于筛选数据框中满足指定条件的行。`filter()`函数接受一个数...
    99+
    2023-09-04
    r语言 filter
  • R语言中如何使用strsplit函数
    小编给大家分享一下R语言中如何使用strsplit函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、R语言strsplit用于分割字符串创建测试数据>&...
    99+
    2023-06-14
  • R语言中assign函数怎么使用
    在R语言中,`assign`函数用于将一个值指派给一个变量名。其使用格式如下:```Rassign(x, value, envir ...
    99+
    2023-10-09
    R语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作