Ну, как заметил Мэтт, это скорее предупреждение, чем ошибка. Предупреждение основано на том факте, что ваши корзины зависят от данных в каждой группе. Поскольку имена бинов (aka labels
) устанавливаются автоматически, вы получаете разные уровни факторов для каждой группы. Внутренне dplyr связывает все группы вместе, по сути, вы присоединяетесь к ним. При объединении метки неравного фактора не должны совпадать друг с другом (вы просто видите строки, но они сохраняются в виде числовых значений внизу). Поскольку вы предпочитаете хранить метку каждого значения, а не числовое значение, dplyr преобразует его в символы. Посмотрите этот пример, где я делаю группировку вручную:
set.seed(0)
dplyr::tibble(x = rnorm(100), group = rep(c('a','b'), 50)) %>%
dplyr::group_by(group) %>%
mutate(bin = OneR::bin(x, nbins = 10))
set.seed(0)
data1 <- dplyr::tibble(x = rnorm(100), group = rep(c('a','b'), 50)) %>%
filter(group == "a") %>%
mutate(bin = OneR::bin(x, nbins = 10))
set.seed(0)
data2 <- dplyr::tibble(x = rnorm(100), group = rep(c('a','b'), 50)) %>%
filter(group == "b") %>%
mutate(bin = OneR::bin(x, nbins = 10))
# same warning pops out
bind_rows(data1, data2)