Объединить два фрейма данных с неуникальным идентификатором - PullRequest
0 голосов
/ 30 ноября 2018

Попытка объединить два фрейма данных в R: Один выглядит следующим образом:

Id
1
2
3
4

Другой выглядит так:

Id Name
 1  A
 1  B
 2  B
 3  C
 3  A

Ожидаемый результат:

ID A B C 
1  1 1 0 
2  0 1 0
3  1 0 1

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

1 Ответ

0 голосов
/ 30 ноября 2018

Вот способ с dplyr и tidyr -

library(dplyr)
library(tidyr)

df1 <- data.frame(Id = 1:4)
df2 <- data.frame(Id = c(1,1,2,3,3), Name = c("A", "B", "B", "C", "A"), 
                  stringsAsFactors = F)

df2 %>% 
  mutate(value = 1) %>% 
  spread(Name, value, fill = 0) %>% 
  inner_join(df1, by = "Id")

  Id A B C
1  1 1 1 0
2  2 0 1 0
3  3 1 0 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...