Связать / объединить два фрейма данных с различным количеством строк - PullRequest
3 голосов
/ 13 марта 2020

Я ищу способ связать столбцы нескольких фреймов данных, даже если количество строк не совпадает. Я попытался использовать "cbind" и "merge", чтобы получить мои данные в широком формате, в отличие от предпочтения dplyr для больших данных.

Для простого примера, скажем, у меня есть 2 кадра данных: 1 с 4 строками , один с 5. Я хочу связать с «Командой», и всякий раз, когда нет совпадений, заполните его либо пробелом, либо NA.

Пример кадра данных:

df1

Team Season Pts
STL 2019 99
CHI 2019 84
DET 2019 74
NYR 2019 78

df2

Team Season Pts
STL 2018 94
CHI 2018 76
MIN 2018 101
DET 2018 73
BOS 2018 112

Желаемый результат будет выглядеть примерно так:

Team Season Points Team.1 Season.1 Points.1
STL 2019 99 STL 2018 94
CHI 2019 84 CHI 2018 76
DET 2019 74 DET 2018 73
NYR 2019 78 NA NA NA
MIN 2018 101 NA NA NA
BOS NA NA BOS 2019 112 

1 Ответ

3 голосов
/ 13 марта 2020

Очень просто использовать операции над множествами с dplyr. В частности, вы ищете full_join.

Эта функция имеет 3 аргумента, # 1 и # 2 - кадры данных, к которым вы хотите присоединиться. № 3 - это аргумент «ключ», который сообщает функции, по какой колонке присоединяться к фреймам данных. В этом случае ключ = «Команда».

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