Как добавить список значений из одной таблицы в другую в R? - PullRequest
1 голос
/ 06 февраля 2020

Я пытаюсь объединить некоторые данные, которые у меня есть, в двух разных фреймах данных

Вот мои два фрейма данных

У меня есть набор данных клиента в x, который имеет столбцы инициалов, которые я вставил вручную, и другой фрейм данных с именем y, только с идентификатором и инициалами

x имеет 2959 наблюдений, а y - 978 наблюдений, поэтому у меня не все инициалы для всех моих клиентов в данных кадр х, но те, которые я делаю, находятся в кадре данных у. И в данных y также есть некоторые NA.

Я хочу создать новый фрейм данных, содержащий все 2959 наблюдений и заполненные инициалы для клиентов, чьи инициалы у меня есть в фрейме данных y. Те, кто не находится в фрейме данных, должны быть в окончательном списке, но только с NA. x

ID       Name      Initials     AGE 
123      Mike        NA          18
124      John        NA          20
125      Lily        NA          21
126      Jasper      NA          24
127      Toby        NA          27 
128      Will        NA          19 
129      OScar       NA          32
~~
~~
y 
~~
ID      Initials 
123       MC
126       TR
127       WO
129       NA
~~
~~


Here is my desired output


ID       Name      Initials     AGE 
123      Mike        MC          18
124      John        NA          20
125      Lily        NA          21
126      Jasper      NA          24
127      Toby        TR          27 
128      Will        WO          19 
129      Oscar       NA          32

Я пробовал это, но на выходе было только 878 наблюдений.

merge_data <- merge(x, y, 
                by = "ID") 

1 Ответ

1 голос
/ 06 февраля 2020

Мы можем использовать left_join в dplyr

library(dplyr)
left_join(x %>% 
               select(-Initials), y, by = 'ID') 

В base R, по умолчанию он возвращает вывод внутреннего соединения, если нам нужно left_join, указать all.x = TRUE

merge(x, y, all.x = TRUE, by = 'ID')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...