打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R学习 从Tidyverse学起,入门R语言dplyr合并数据

R学习往期回顾:

R学习 流程控制 if,else,ifelse

R学习 从Tidyverse学起,入门R语言(tidyr和stringr)

R学习 从Tidyverse学起,入门R语言(tibble,readr和dplyr)

R学习:字符串

R学习:环境和函数

R学习:数据框的基本操作

R学习:R for Data Science(五)

R学习:R for Data Science(四)

R学习:R for Data Science(三)

R学习:R for Data Science(二)

R学习:R for Data Science(一)

今天我们补充一下dplyr包中的合并数据的功能

dplyr::inner_join/full_join/left_join/right_join

inner_join:只包含同时出现在x,y表中的行

left_join:包含所有x中以及y中匹配的行

right_join:包含所有y中以及x中匹配的行

full_join:包含所以x、y中的行

用法

inner_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"),
...)

left_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

right_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"),
...)

full_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

理解连接

x <- tribble( ~key, ~val_x, 1, "x1", 2, "x2", 3, "x3")y <- tribble( ~key, ~val_y, 1, "y1", 2, "y2", 4, "y3")

有颜色的列表示作为“键”的变量:它们用于在表间匹配行。灰色列表示“值”列,是与键对应的值。

连接是将 x 中每行连接到 y 中 0 行、一行或多行的一种方法。下图表示出了所有可能的匹配,匹配就是两行之间的交集

匹配在实际的连接操作中是用圆点表示的。圆点的数量 = 匹配的数量 = 结果中行的数量

内连接

内连接是最简单的一种连接。只要两个观测的键是相等的,内连接就可以匹配它们

内连接的结果是一个新数据框,其中包含键、 x 值和 y 值。我们使用 by 参数告诉 dplyr 哪个变量是键:

x %>% inner_join(y, by = "key")#> # A tibble: 2 × 3#> key val_x val_y#> <dbl> <chr> <chr>#> 1 1 x1 y1#> 2 2 x2 y2


外连接
内连接保留同时存在于两个表中的观测, 外连接则保留至少存在于一个表中的观测。外连接有 3 种类型

· 左连接:保留 x 中的所有观测。
· 右连接:保留 y 中的所有观测
· 全连接:保留 x 和 y 中的所有观测。

这些连接会向每个表中添加额外的“虚拟”观测,这个观测拥有总是匹配的键(如果没有其他键可匹配的话),其值则用 NA 来填充。

最常用的连接是左连接:只要想从另一张表中添加数据,就可以使用左连接,因为它会保留原表中的所有观测,即使它没有匹配。左连接应该是你的默认选择
表示不同类型连接的另一种方式是使用维恩图

base::merge() 函数可以实现所有 4 种合并连接操作

练习一下

library(tidyverse)band_membersband_instruments

band_members %>% inner_join(band_instruments)band_members %>% left_join(band_instruments)band_members %>% right_join(band_instruments)band_members %>% full_join(band_instruments)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Tidyverse| XX_join :多个数据表(文件)之间的各种连接
《R数据科学》第9章-用dplyr处理关系数据
通过数据看上海疫情
R语言数据处理----数据合并与追加
R语言中连接dplyr的join系列与merge函数
R语言进阶笔记3 | dplyr常用函数介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服