a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c'))
b <- data.frame(id = 1:3, v1 = c(NA, 'B', 'C'), v2 = c("A", NA, NA))
> a
id v1 v2
1 1 a <NA>
2 2 <NA> b
3 3 <NA> c
> b
id v1 v2
1 1 <NA> A
2 2 B <NA>
3 3 C <NA>
примечание: Нет идентификаторов, для которых v1 или v2 определены в обеих таблицах; в каждом столбце для каждого значения идентификатора есть только одно уникальное значение, отличное от NA
ab <- merge(a, b, by = "id")
v1
и v2
, так что data.frame ab
будет выглядеть так:ab <- data.frame(id = 1:3, v1 = c("a", "B", "C"), v2 = c("A", "b", "c"))
> ab
id v1 v2
1 1 a A
2 2 B b
3 3 C c
> merge(a, b, by = "id")
id v1.x v2.x v1.y v2.y
1 1 a <NA> <NA> A
2 2 <NA> b B <NA>
3 3 <NA> c C <NA>
data.frame
, так и data.table
, так что вот версии data.table выше:A <- data.table(a, key = 'id')
B <- data.table(b, key = 'id')
A[B]