тиббл с чайниками :: dummy.data.frame требует дополнительного шага - PullRequest
0 голосов
/ 01 октября 2018

Я только что обнаружил странное взаимодействие с пакетами tibble и dummies, на которые я сильно полагаюсь.См. Следующий первый код:

data.frame(year = c(2015, 2016, 2017, 2018)) %>% 
  dplyr::mutate(year = as.factor(year)) %>% 
  dummies::dummy.data.frame(., dummy.classes = "factor")

, который правильно производит

  year2015 year2016 year2017 year2018
1        1        0        0        0
2        0        1        0        0
3        0        0        1        0
4        0        0        0        1

Если мы добавим as.tibble() к трубе, так что

data.frame(year = c(2015, 2016, 2017, 2018)) %>% 
  dplyr::mutate(year = as.factor(year)) %>%
  as.tibble() %>% 
  dummies::dummy.data.frame(., dummy.classes = "factor")

произведет

  year
1 2015
2 2016
3 2017
4 2018

Если мы добавим еще один дополнительный шаг dummy.data.frame ко второму коду, так что

data.frame(year = c(2015, 2016, 2017, 2018)) %>% 
  dplyr::mutate(year = as.factor(year)) %>%
  as.tibble() %>% 
  dummies::dummy.data.frame(., dummy.classes = "factor") %>% 
  dummies::dummy.data.frame(., dummy.classes = "factor")

снова выдаст

  year2015 year2016 year2017 year2018
1        1        0        0        0
2        0        1        0        0
3        0        0        1        0
4        0        0        0        1

Не можетдостаточно выяснить, что здесь происходит, и не увидел проблемы, поданной на GitHub.Мой обходной путь в настоящее время заключается в добавлении as.data.frame() к трубе всякий раз, когда я работаю с dummies, но мне просто любопытно, почему я должен.

...