Объединение двух наборов данных с различным количеством наблюдений - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть два набора данных, которые содержат население и долготу / широту субрегионов. Поскольку в каждом субрегионе имеется несколько географических записей, я хочу объединить эти наборы данных таким образом, чтобы совокупность отображалась в каждой соответствующей географической строке. Я пробовал каждую команду dplyr (inner_join, full_join et c), но не могу заставить ее работать. Любая помощь в этом очень ценится!

Набор данных 1 (100 наблюдений)

subregion    population 

adams        66949
alexander     7051
bond         17137
...          ...

Набор данных 2 (10000 наблюдений)

subregion   longitude   latitude

adams       -91.49563    40.21018
adams       -90.91121    40.19299
adams       -90.91694    39.75754
alexander   -89.20380    37.32247
...         ...          ...

Требуемый набор данных

subregion   longitude   latitude   population

adams       -91.49563    40.21018  66949
adams       -90.91121    40.19299  66949
adams       -90.91694    39.75754  66949
alexander   -89.20380    37.32247   7051
...         ...          ...

1 Ответ

0 голосов
/ 25 апреля 2020
#library(tibble) # uncomment if needed to access tribble()

B <- tribble(  # Using tribble to make quick, easy df's from your post
  ~subregion,    ~population ,
  "adams",        66949,
  "alexander",     7051,
  "bond",         17137)

A <- tribble(
  ~subregion,   ~longitude,   ~latitude,
  "adams",       -91.49563,    40.21018,
  "adams",       -90.91121,    40.19299,
  "adams",       -90.91694,    39.75754,
  "alexander",   -89.20380,    37.32247)

merge(A,B,by="subregion")

#> merge(A,B,by="subregion")
#  subregion longitude latitude population

#1     adams -91.49563 40.21018      66949
#2     adams -90.91121 40.19299      66949
#3     adams -90.91694 39.75754      66949
#4 alexander -89.20380 37.32247       7051

ПРИМЕЧАНИЕ: облигация сброшена. Используйте

merge(A,B,by="subregion",all.x=TRUE,all.y=TRUE) 

, если требуется всплытие облигации, но широта / долгота нет (значения будут установлены на NA).

Можно сохранить все из первого кадра, второго кадра или обоих (заполнение с помощью NA) с различными комбинациями all.x / all.y, установленными в TRUE или FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...