I came across a merge behaviour that I do not understand.
Let's say that you want to merge a numer of data.frames by a shared column, keep the other columns and rename them using suffixes:
dt1 <- data.frame(ind = 1:10, var1 = 2:11, var2 = 3:12)
dt2 <- data.frame(ind = 1:10, var1 = 5:14, var2 = 6:15)
dt3 <- data.frame(ind = 1:10, var1 = 7:16, var2 = 8:17)
dt4 <- data.frame(ind = 1:10, var1 = 10:19, var2 = 11:20)
dt_all <- dt1 %>%
    merge(dt2, by = "ind", all = TRUE, suffixes = c(".1", ".2")) %>%
    merge(dt3, by = "ind", all = TRUE, suffixes = c("", ".3")) %>%
    merge(dt4, by = "ind", all = TRUE, suffixes = c("", ".4"))
This is what I get:
> head(dt_all, 1)
  ind var1.1 var2.1 var1.2 var2.2 var1 var2 var1.4 var2.4 
1   1      2      3      5      6    7    8     10     11 
I expected to get var1.3 var2.3 instead of var1 var2. The result does not change if I do not use the dplyr pipes or use data.table with or without seting keys for all the tables. Can anyone explain this?
 
    