0
点赞
收藏
分享

微信扫一扫

dplyr包连接数据框(动画版)

亿奇学 2021-09-19 阅读 84
library(tidyverse)
x <- dplyr::data_frame(id = 1:3,
  x = paste0("x", 1:3))

y <- dplyr::data_frame(id = (1:4)[-3],
  y = paste0("y", (1:4)[-3]))
> x
# A tibble: 3 x 2
     id x    
  <int> <chr>
1     1 x1   
2     2 x2   
3     3 x3   
> y
# A tibble: 3 x 2
     id y    
  <int> <chr>
1     1 y1   
2     2 y2   
3     4 y4  

突变联接

内部联接

inner_join函数合并两个数据集的变量,但仅保留具有共同ID的行

左连接

与inner_join函数的区别在于,left_join保留了Y与左数据表匹配的行

左联接(y中的额外行)

如果有多个x和y之间的匹配,返回所有组合

右联接

right_join函数保留右侧的所有数据行,如果比较左连接与右连接,则可以看到两个函数都保留相反数据的行

完全联接

full_join函数保留两个输入数据集的所有行,并在其中一个数据帧中缺少ID时插入NA

过滤联接

半连接

semi_join函数仅保留两个数据集共有的行,而仅保留左侧数据集的列

反联接

anti_join函数仅保留右侧数据中不存在的行,并且仅保留左侧数据中的列

Union

全部独特的行,对重复行去重

全部的行,保持重复

intersect

仅保留唯一行

Set Difference

宽表转长表

wide
#> # A tibble: 2 x 4
#>      id x     y     z    
#>   <int> <chr> <chr> <chr>
#> 1     1 a     c     e    
#> 2     2 b     d     f
long
#> # A tibble: 6 x 3
#>      id key   val  
#>   <int> <chr> <chr>
#> 1     1 x     a    
#> 2     2 x     b    
#> 3     1 y     c    
#> 4     2 y     d    
#> 5     1 z     e    
#> 6     2 z     f
举报

相关推荐

0 条评论