Как выбрать только столбцы (тип = фактор) с менее чем n уровней с dplyr? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть проблема, похожая на эту: я хочу выбрать только столбцы с уровнями, меньшими, чем "n", и я думаю, что я мог бы сделать это, используя dplyr, но я не знаю, как.

Следует примеру с данными Титаника, где с str() у меня 3 фактора с 2 уровнями и 1 фактор с 4 уровнями.Моя идея состоит в том, чтобы выбрать только столбцы с менее чем 4 уровнями.

str(as.data.frame(Titanic) %>% mutate_if(is.character, factor))

Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 мая 2018

Просто передайте функцию на select_if, очень похоже на mutate_if - см. ?nlevels:

Titanic %>%
  as_data_frame() %>%
  mutate_if(is.character, factor) %>%
  select_if(~ nlevels(.) < 4)

Обратите внимание, что вы также можете написать это как: select_if(function(x) nlevels(x) < 4)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...