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

У меня есть два тибля:

a <- tibble(month=c("Jan", "Feb", "Jan", "Feb"),
   x=c(1,1,2,2))
b <- tibble(x=c(1,2,1,2),
   y=c("a", "b", "c", "d"),
   z=c("m", "n", "m", "n"))

, к которым я хочу присоединиться.Однако меня не интересует дополнительная информация, предоставляемая переменной y;Я знаю, что для любого значения в x, есть только одно значение в z.Итак, желаемый результат:

# A tibble: 4 x 3
  month     x z    
  <chr> <dbl> <chr>
1 Jan       1 m    
2 Feb       1 m    
3 Jan       2 n    
4 Feb       2 n

Но при использовании left_join все значения "double":

> left_join(a, b, by="x")
# A tibble: 8 x 4
  month     x y     z    
  <chr> <dbl> <chr> <chr>
1 Jan       1 a     m    
2 Jan       1 c     m    
3 Feb       1 a     m    
4 Feb       1 c     m    
5 Jan       2 b     n    
6 Jan       2 d     n    
7 Feb       2 b     n    
8 Feb       2 d     n  

, что, конечно, понятно, но - в моем случае - нежелательно.Я попытался свернуть таблицу, используя group_by(month) %>% summarise(z=z), но это не работает, потому что суммирование не может иметь дело с факторами.Каким было бы решение?

1 Ответ

0 голосов
/ 03 октября 2018

Ответ (найден здесь ):

a %>%
  left_join(b %>%
              select(x, z) %>%
              unique())
...