library(data.table)
(dt1 <- data.table(A = letters[1:5], X = 1:5, key = "A"))
##    A X
## 1: a 1
## 2: b 2
## 3: c 3
## 4: d 4
## 5: e 5
(dt2 <- data.table(A = letters[3:8], Y = 1:5, key = "A"))
## Warning in data.table(A = letters[3:8], Y = 1:5, key = "A"): Item 2 is of
## size 5 but maximum size is 6 (recycled leaving remainder of 1 items)
##    A Y
## 1: c 1
## 2: d 2
## 3: e 3
## 4: f 4
## 5: g 5
## 6: h 1
merge(dt1, dt2)
##    A X Y
## 1: c 3 1
## 2: d 4 2
## 3: e 5 3
merge(dt1, dt2, all = TRUE)
##    A  X  Y
## 1: a  1 NA
## 2: b  2 NA
## 3: c  3  1
## 4: d  4  2
## 5: e  5  3
## 6: f NA  4
## 7: g NA  5
## 8: h NA  1