Предупреждение о дублировании соединений dplyr в R - PullRequest
0 голосов
/ 06 марта 2020

Я использую dplyr::left_join() очень много, и иногда я не замечаю, когда повторяющиеся записи во второй таблице приводят к нескольким совпадениям (и основной таблице с большим количеством строк, чем я начал).

I ' Я хотел бы знать, есть ли способ для R, чтобы выбросить предупреждающее сообщение, когда это произойдет. Или я просто ленивый? Должен ли я позаботиться о том, чтобы я не работал с таблицами с дублирующимися записями?

1 Ответ

2 голосов
/ 06 марта 2020

Один из способов - использовать собственную версию left_join, где вы сравниваете количество строк:

my_left_join <- function(x, y, ...){
  res <- dplyr::left_join(x, y, ...)

  if (nrow(res) > nrow(x)) warning("Duplicated records found")
  return(res)  
}

Таким образом my_left_join выдает предупреждение:

a <- tibble(id = 1:3)
b <- tibble(id = c(1:3, 1), val = 7:10)


a %>% dplyr::left_join(b, by = "id")
a %>% my_left_join(b, by = "id")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...