R Объединить 2 data.frames по близости почтового индекса - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть 2 data.frames с почтовыми индексами.Один из домов, а другой метеостанций.Мне нужно объединить 2 кадра данных по близости почтовых индексов, поэтому у меня есть данные о температуре метеостанций, слитых с ближайшими домами.Я не мог объединиться по количеству почтовых индексов, потому что это не то же самое на 2 datas.frames, поскольку в некоторых домах нет метеостанций с тем же почтовым индексом.

Возможно ли это в R?

Большое спасибо.

1 Ответ

0 голосов
/ 24 сентября 2019

Это основано на предположении, что список метеостанций небольшой и, следовательно, не повлияет на время вычислений:

library(dplyr)
library(purrr)

df_with_homes_stats = df_with_homes %>% 
  dplyr::mutate(closestZip = purrr::map_dbl(.x=homeZip,~df_with_stats$stationZip[which.min(abs(.x-df_with_stats$stationZip))])) %>% 
  dplyr::left_join(df_with_stats,by=c('closestZip'='stationZip'))

Здесь 'df_with_homes' - большой набор данных с почтовыми индексами каждого дома и«df_with_stats» соответствует почтовым индексам станций.Основное предположение здесь, расстояние между почтовыми индексами пропорционально математической разнице между ними.

Дайте мне знать, если это работает.

...