美文网首页科研信息学R
R语言中的连接dplyr中的join系列与merge函数

R语言中的连接dplyr中的join系列与merge函数

作者: 医科研 | 来源:发表于2019-07-03 12:01 被阅读16次

    在数据分析过程中,仅仅涉及一张表格的情况是非常少见的,我们经常需要联系到其它表格的数据,整合这些表格的信息。这时我们需要常见的三类操作来完成。

    • 合并连接:根据观测合并表格
    • 筛选连接:根据观测,筛选保留或者删去变量
    • 集合操作:不常见(暂不详述)

    R语言中用于连接的函数

    • 一是dplyr中的join系列,又包括内连接与外连接

    内连接-inner_join

    是指仅仅保留x,y中相匹配的观测,下面用几张图来说明,相当于是做了一个交集

    内连接1
    内连接2 内连接3
    inner_join(x,y,by="key")
    

    外连接

    ** 外连接又包括了:

    • 左连接:保留x中所有观测,y中保留匹配的观测(交集但有包含X中所有)
    • 右连接:同理保留y中所有观测(交集但保留y中所有)
    • 全连接:x,y中所有观测都保留

    下面一一用图片的方式展示,加深理解

    左连接-left_join

    y中未匹配的观测丢弃,x中未匹配的观测保留,y中以NA填充

    left_join(x,y,by="key)
    
    左连接1 左连接2

    右连接-right_join

    与左连接同理,保留y中所有观测,x中仅保留匹配的观测。

    right_join(x,y,by=key)
    
    右连接

    全连接-full_join

    x,y中观测全部保留,相当于取了并集

    full_join(x,y,by="key)
    
    全连接

    dplyr中的筛选连接

    筛选连接包括:包括 半连接与反连接**

    半连接-semi_join

    保留x中与y匹配的观测,它与内连接的不同在于,取交集但是并不合并y而仅仅是保留了x,y的作用是做了筛选而已。

    半连接
    semi_join(x,y,by="key)
    

    反连接

    是半连接的反向操作,用y做筛选,找出非相交的部分保留下来

    反连接
    anti_join(x,y,by= “key”)
    

    merge函数

    dplyr中的join系列函数与base::merge函数其实相似
    merge函数也能实现这四种合连接的操作,但相对来讲,dplyr中的表达更清晰,更易让人理解并记住。

    内连接

    merge(x,y,by=“key”)
    

    左连接

    merge(x,y,all.x=TRUE,by="key")
    

    右连接

    merge(x,y,all.y=TRUE,by="key")
    

    全连接

    merge(x,y,all.x=TRUE,all.y=TRUE,by="key")
    

    相关阅读:

    R语言中创建函数参数的问题
    R语言with/within函数添加数据框到环境变量
    R语言简单for循环(二)
    R语言for循环01-批量完成相关系数计算
    R语言-相关系数计算(一)
    认真聊一聊R语言中的paste/paste0函数
    R语言aggregate函数

    今天的内容就到这里,我是白介素2,下期再见。

    转载请注明出处。

    相关文章

      网友评论

        本文标题:R语言中的连接dplyr中的join系列与merge函数

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