join in r

source: https://www.youtube.com/watch?v=MzsBwc9_Ovc&list=PLY0OaF78qqGA42e0rXqBWCcF_C9Ib-T1x&index=43

df1 <- data.frame(x = 1:6, y = month.name[1:6])
df2 <- data.frame(x = 7:12, y = month.name[7:12])
df3 <- bind_rows(df1, df2)

df4 <- data.frame(z = month.abb)
df5 <- bind_cols(df3, df4)

band_members
# # A tibble: 3 x 2
#   name  band   
#   <chr> <chr>  
# 1 Mick  Stones 
# 2 John  Beatles
# 3 Paul  Beatles
band_instruments
# # A tibble: 3 x 2
#   name  plays 
#   <chr> <chr> 
# 1 John  guitar
# 2 Paul  bass  
# 3 Keith guitar

inner_join(band_members, band_instruments, by = "name")
# # A tibble: 2 x 3
#   name  band    plays 
#   <chr> <chr>   <chr> 
# 1 John  Beatles guitar
# 2 Paul  Beatles bass
left_join(band_members, band_instruments, by = "name")
# # A tibble: 3 x 3
#   name  band    plays 
#   <chr> <chr>   <chr> 
# 1 Mick  Stones  <NA>  
# 2 John  Beatles guitar
# 3 Paul  Beatles bass
right_join(band_members, band_instruments, by = "name")
# # A tibble: 3 x 3
#   name  band    plays 
#   <chr> <chr>   <chr> 
# 1 John  Beatles guitar
# 2 Paul  Beatles bass  
# 3 Keith <NA>    guitar
full_join(band_members, band_instruments, by = "name")
# # A tibble: 4 x 3
#   name  band    plays 
#   <chr> <chr>   <chr> 
# 1 Mick  Stones  <NA>  
# 2 John  Beatles guitar
# 3 Paul  Beatles bass  
# 4 Keith <NA>    guitar
full_join(band_members, band_instruments2, by = c("name"="artist"))
# # A tibble: 4 x 3
#   name  band    plays 
#   <chr> <chr>   <chr> 
# 1 Mick  Stones  <NA>  
# 2 John  Beatles guitar
# 3 Paul  Beatles bass  
# 4 Keith <NA>    guitar
full_join(band_members, band_instruments2, by = c("name"="artist"), keep = T)
# # A tibble: 4 x 4
#   name  band    artist plays 
#   <chr> <chr>   <chr>  <chr> 
# 1 Mick  Stones  <NA>   <NA>  
# 2 John  Beatles John   guitar
# 3 Paul  Beatles Paul   bass  
# 4 <NA>  <NA>    Keith  guitar

semi_join(band_members, band_instruments, by = "name")
# # A tibble: 2 x 2
#   name  band   
#   <chr> <chr>  
# 1 John  Beatles
# 2 Paul  Beatles
anti_join(band_members, band_instruments, by = "name")
# # A tibble: 1 x 2
#   name  band  
#   <chr> <chr> 
# 1 Mick  Stones

.EOD.