** Practice Joining with dplyr **

library(dplyr)
## Warning: package 'dplyr' was built under R version 3.2.5
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
a1<-data.frame(name=c("Ha","Tuyen","Van","Tri","Tuong"),age=c(23,24,25,21,23))

b1<-data.frame(name=c("Ha","Tri","Van","Hung","Hien"),wt=c(67,68,45,76,69))

# Left_join will keep a1 (first key) and add second key (b1) if match, otherwise excluded elements of b1. The right_joint is the opposite

join_left<-left_join(a1,b1,by="name")
## Warning in left_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
join_left
##    name age wt
## 1    Ha  23 67
## 2 Tuyen  24 NA
## 3   Van  25 45
## 4   Tri  21 68
## 5 Tuong  23 NA
my_inner_join<-inner_join(a1,b1,by="name")
## Warning in inner_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
my_inner_join
##   name age wt
## 1   Ha  23 67
## 2  Van  25 45
## 3  Tri  21 68
my_full_join<-full_join(a1,b1,by="name")
## Warning in full_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
my_full_join
##    name age wt
## 1    Ha  23 67
## 2 Tuyen  24 NA
## 3   Van  25 45
## 4   Tri  21 68
## 5 Tuong  23 NA
## 6  Hung  NA 76
## 7  Hien  NA 69