** 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