Объединить редко используемые уровни факторов по всем факторам в фрейме данных - PullRequest
1 голос
/ 31 марта 2020

Я хотел бы объединить уровни факторов, которые используются менее чем 5 раз для каждого фактора, в наборе данных, содержащем много различных факторов. Хотя я понимаю, что функция fct_lump () в пакете forcats может помочь мне достичь этого для одного фактора, есть ли функция, в которой я могу применить функцию fct_lump () ко всем факторам в моем наборе данных?

1 Ответ

1 голос
/ 31 марта 2020

Мы можем проверить, является ли столбец factor с mutate_if и применить fct_lump

library(dplyr)
library(forcats)
df1 %>%
     mutate_if(is.factor, fct_lump)

Или в base R

i1 <- sapply(df1, is.factor)
df1[i1] <- lapply(df1[i1], fct_lump)
...