Section 45 Merge Data: using dplyr

45.1 Function join

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"), ...)

45.2 Data

library(dplyr)

set.seed(123)

# DF1
ID <- paste0('S',1:5)
Sex <- sample(x = c('M','F'), size = length(ID), replace = TRUE)
Area <- c('A1','A1','A2','A3', NA)
DF1 <- data.frame(ID=ID, Sex=Sex, Area=Area, stringsAsFactors=FALSE)

# DF2
Area <- c('A1','A2','A3','A4')
Epi <- c('Da','Db','Dc','D4')
DF2 <- data.frame(Area=Area, Epi=Epi, stringsAsFactors=FALSE)

45.2.1 DF1

45.2.2 DF2

45.3 Inner Join

# Inner Join

DF %>% inner_join(x=DF1, y=DF2, by=c('Area'='Area')) -> m1aDF

DF %>% inner_join(x=DF1, y=DF2, by='Area') -> m1aDF


45.4 Left Join

# Left Join

DF %>% left_join(x=DF1, y=DF2, by=c('Area'='Area')) -> m2DF


45.5 Right Join

# Right Join

DF %>% right_join(x=DF1, y=DF2, by=c('Area'='Area')) -> m3DF


45.6 Full Join

# Full Join

DF %>% full_join(x=DF1, y=DF2, by=c('Area'='Area')) -> m4DF