R语言数据-R语言-图表-决策-Linux-PythonR数据读取 清理

R语言中dplyr包jion函数之目前我看到过的最形象的教程

2018-08-16  本文已影响20人  热衷组培的二货潜

所涉及的函数

深入了解学习的内容

数据类型

x <- tribble(
  ~key, ~val_x,
  1, "x1",
  2, "x2",
  3, "x3")

y <- tribble(
  ~key, ~val_y,
  1, "y1",
  2, "y2",
  4, "y3")

y1 <- tribble(
  ~key, ~val_y,
  1, "y1",
  2, "y2",
  4, "y4",
  2, "y5")
image.png

合并连接

内连接

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

外连接

left_join函数

> left_join(x, y, by = "key")
# A tibble: 3 x 3
    key val_x val_y
  <dbl> <chr> <chr>
1     1 x1    y1   
2     2 x2    y2   
3     3 x3    NA
left-join.gif

如果x中的key变量,在y中有多个同样的key,那么所有的结合可能都会罗列出来

> left_join(x, y1, by = "key")
# A tibble: 4 x 3
    key val_x val_y
  <dbl> <chr> <chr>
1     1 x1    y1   
2     2 x2    y2   
3     2 x2    y5   
4     3 x3    NA
left-join-extra.gif

right_join函数

> right_join(x, y, by = "key")
# A tibble: 3 x 3
    key val_x val_y
  <dbl> <chr> <chr>
1     1 x1    y1   
2     2 x2    y2   
3     4 NA    y3 
right-join.gif

full_join函数

> full_join(x, y, by = "key")
# A tibble: 4 x 3
    key val_x val_y
  <dbl> <chr> <chr>
1     1 x1    y1   
2     2 x2    y2   
3     3 x3    NA   
4     4 NA    y3
full-join.gif

使用维恩图表示不同类型连接方式

image.png

dplyr中这些连接函数对应基础函数merge中的功能表

image.png

dplyr这几种函数的来源SQL中对应的功能

image.png

筛选连接

semi_join函数
> semi_join(x, y, by = "key")
# A tibble: 2 x 2
    key val_x
  <dbl> <chr>
1     1 x1   
2     2 x2
semi-join.gif
anti_join函数
> anti_join(x, y, by = "key")
# A tibble: 1 x 2
    key val_x
  <dbl> <chr>
1     3 x3 
anti-join.gif
参考博文:

图中gif文件来源,tiwtter上逛#rstat(类似微博话题)专题时看到的大神的操作
https://github.com/gadenbuie/tidy-animated-verbs#relational-data

image.png
参考书籍

英文版:《R for data science》
中文版:《R数据科学》

上一篇 下一篇

猜你喜欢

热点阅读