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