Load dplyr

library(dplyr)
## Warning: package 'dplyr' was built under R version 3.2.1
## 
## 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

Create first DF

n <- c(1:10) 
s <- c("aa", "bb", "cc", "bb", "cc", "aa", "bb", "cc", "bb", "cc") 
d <- c("casa", "casa", "casa", "lelo", "lelo", "lelo", "lelo", "lelo", "name", "name")
b <- c(TRUE, FALSE, TRUE, T, F, F, T, T, T, T) 
df1 <- data.frame(n, b, s, d)

print(df1)
##     n     b  s    d
## 1   1  TRUE aa casa
## 2   2 FALSE bb casa
## 3   3  TRUE cc casa
## 4   4  TRUE bb lelo
## 5   5 FALSE cc lelo
## 6   6 FALSE aa lelo
## 7   7  TRUE bb lelo
## 8   8  TRUE cc lelo
## 9   9  TRUE bb name
## 10 10  TRUE cc name

Create second DF

s <- c("aa", "bb", "dd")
d <- c("casa", "lelo", "name")
sort <- c("a", "b", "d")
df2<- data.frame(s, d, sort)

print(df2)
##    s    d sort
## 1 aa casa    a
## 2 bb lelo    b
## 3 dd name    d

Merge tables: method 1

z<-left_join (df1, df2, by=c("s", "d"))
## Warning in left_join_impl(x, y, by$x, by$y): joining factors with different
## levels, coercing to character vector
print(z)
##     n     b  s    d sort
## 1   1  TRUE aa casa    a
## 2   2 FALSE bb casa <NA>
## 3   3  TRUE cc casa <NA>
## 4   4  TRUE bb lelo    b
## 5   5 FALSE cc lelo <NA>
## 6   6 FALSE aa lelo <NA>
## 7   7  TRUE bb lelo    b
## 8   8  TRUE cc lelo <NA>
## 9   9  TRUE bb name <NA>
## 10 10  TRUE cc name <NA>

Merge tables: method 2

z<- df1 %>% left_join(df2) # Matches all the columns with the same name in both columns
## Joining by: c("s", "d")
## Warning in left_join_impl(x, y, by$x, by$y): joining factors with different
## levels, coercing to character vector
print(z)
##     n     b  s    d sort
## 1   1  TRUE aa casa    a
## 2   2 FALSE bb casa <NA>
## 3   3  TRUE cc casa <NA>
## 4   4  TRUE bb lelo    b
## 5   5 FALSE cc lelo <NA>
## 6   6 FALSE aa lelo <NA>
## 7   7  TRUE bb lelo    b
## 8   8  TRUE cc lelo <NA>
## 9   9  TRUE bb name <NA>
## 10 10  TRUE cc name <NA>

Lectures:
- [a] (https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html)