数据连接:dplyr包的join系列函数
专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。
这是我的第55篇原创文章,关于R语言和数据连接。
阅读完本文,你可以知道:
1 R语言dplyr包join系列函数使用
2 R语言数据连接和SQL连接的对应关系
昨日,我在用R语言做情感分析数据项目时,有一行代码使用dplyr的semi_join函数。这个函数是我第一次接触到,我以前做数据连接的时候主要使用inner_join函数和left_join函数。因此,我继续学习下semi_join函数,并同时把R语言的join系列函数做个总结。在查阅的学习资料的过程中,找到一份利用动画演示dplyr包各种join函数的工作机制,可以帮助我们更形象地理解各种join函数是如何工作的。
我们先构建一份简单的人工数据集。
library(tidyverse)
# 构建数据
x <- tribble(
~key, ~x,
1, "x1",
2, "x2",
3, "x3")
y <- tribble(
~key, ~y,
1, "y1",
2, "y2",
4, "y4")
x
y
结果
dplyr包join系列函数包括:
inner_join|left_join|right_join|full_join|semi_join|anti_join。
1.1 inner_join函数
代码:
# 内连接 inner_join
x %>% inner_join(y, by="key")
结果:
工作机制:
1.2 left_join函数
代码:
# 左连接 left_join
x %>% left_join(y, by="key")
结果:
工作机制:
1.3 right_join函数
代码:
# 右连接 right_join
x %>% right_join(y, by="key")
结果:
工作机制:
1.4 full_join函数
代码:
# 全连接 full_join
x %>% full_join(y, by="key")
结果:
工作机制:
1.5 semi_join函数
代码:
# semi_join
x %>% semi_join(y, by="key")
结果:
工作机制:
1.6 anti_join函数
代码:
# anti_join
x %>% anti_join(y, by="key")
结果:
工作机制:
1 dplyr包内连接函数和外连接函数与基础函数merge的对应关系
说明:dplyr包外连接函数—left_join|right_join|full_join
2 dplyr包内连接函数和外连接函数和SQL连接对应关系
3 dplyr包内连接函数和外连接函数的工作机制的韦恩图
参考资料:
1 https://www.jianshu.com/p/1f4c7bfed3d4
2 https://r4ds.had.co.nz/tidy-data.html
3 https://github.com/gadenbuie/tidyexplain#relational-data
关于dplyr包join系列函数的使用,您有什么疑问或者想法请留言。
需要深入交流和沟通,请加我的微信:luqin360。备注:实名+工作或者专业,否则不会通过。
数据思考与践行
PDFMV框架系列文章

请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!