前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R海洋拾遗_关系数据

R海洋拾遗_关系数据

作者头像
火星娃统计
发布2021-06-29 14:55:26
2450
发布2021-06-29 14:55:26
举报
文章被收录于专栏:火星娃统计火星娃统计

R海洋拾遗_关系数据

概述

关系数据,俗称多个表通过统一的id进行合并,这个id可以是单一的key,也可以是多个key,总之就是合并的关键词吧。其实这个问题在之前的rbase中已经有过涉及,在spss中也可以通过模块化的操作进行合并table。这里重新提起来,主要是能够使代码规范化到tidyverse的生态中

主要函数

  • inner join 内部连接,也就是两个table之间共同拥有的key才回被保留
  • left join 左连接:按照左边的key保留样本
  • right join 右连接:按照右边key保留样本
  • full join 全连接:保留左右样本

例子

代码语言:javascript
复制
x <- tribble(
  ~key, ~val_x,
     1, "x1",
     2, "x2",
     3, "x3",
     4, "x4"
)
y <- tribble(
  ~key, ~val_y,
     1, "y1",
     2, "y2",
     3, "y3"
)

left_join(x, y, by = "key")
#> 1     1 x1    y1   
#> 2     2 x2    y2   
#> 3     2 x3    y3   
#> 4     2 x4    NA  

why?

dplyr

merge

inner_join(x, y)

merge(x, y)

left_join(x, y)

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

right_join(x, y)

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

full_join(x, y)

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

从上述看,似乎是将rbase的merge函数进行了拆解分为了三个函数,从函数设计的简洁原则来看,似乎有点多余,好在函数比较好记,重新转换思路并不是一件困难的事情,为了生态而生态吧(为了管道)。

结束语

love & peace

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 火星娃统计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R海洋拾遗_关系数据
    • 概述
      • 主要函数
        • 例子
          • why?
            • 结束语
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档