Я делаю fuzzy_full_join
из двух таблиц в R, требующих совпадения нескольких ключей. Некоторые строки не совпадают. Вывод дублирует ключи. Этого не происходит с нечетким полным соединением. Каков наилучший способ удалить дубликаты? У меня есть решение, но оно кажется громоздким.
Пример:
x<-data.frame("id"=c(1,1,2,2), "time" = c(1,2,1,2), "meas1" = c(1,2,3,4))
y<-data.frame("id"=c(1,1,2,2), "time" =c(1,3,2,4),"meas2"=c(-1,-2,-3,-4))
# compare full_join output with fuzzy_full_join
full_join(x,y,by=c('id'='id','time'='time'))
fuzzy_full_join(x,y,by=c('id'='id','time'='time'),match_fun=list(`==`,`==`))
# make fuzzy_full_join output match full_join output
fuzzy_full_join(x,y,by=c('id'='id','time'='time'),match_fun=list(`==`,`==`)) %>%
mutate(id=if_else(is.na(id.x),id.y,id.x)) %>%
select(-id.x,-id.y) %>%
mutate(time=if_else(is.na(time.x),time.y,time.x)) %>%
select(-time.y,-time.x)