У меня есть 2 набора данных V =
id A B X
1 a b 10
2 a b 9
3 b c 8
4 b d 17
и W =
ud A B Y
11 a b 11
12 a b 7
13 b c 8
14 b d 21
и я хочу слить их. Используя функции соединения dplyr
s, код
merge = V %>% inner_join(W, by = c("A", "B"))
и результат
id ud A B X Y
1 11 a b 10.0 11.0
1 12 a b 10.0 7.00
2 11 a b 9.00 11.0
2 12 a b 9.00 7.00
3 13 b c 8.00 8.00
4 14 b d 17.0 21.0
Из-за внутреннего объединения были возвращены комбинации матчей. Тем не менее, я хочу (уникальное) соответствие между двумя переменными идентификатора id
и ud
(здесь это не так, потому что, например, 1 сопоставлен с 11 И 12).
Я хочу создать эту уникальную корреспонденцию, присвоив id
ud
, для которой d(X,Y)
минимально, используя некоторую функцию расстояния (например, d(x,y) = abs(x-y)
).
Но как бы я это сделал?