Преобразовать уровни фактора в NA на основе подсчета - PullRequest
0 голосов
/ 06 июня 2018

У меня есть df с переменной с 82 уровнями.Некоторые из этих уровней используются только 1-5 наблюдениями, и я хотел бы установить для них значение NA.

>table(df$var)
   1    2    3    4
   2    4  152  264

способ, которым я обычно делаю это,

df$var[df$var=="1" | df$var=="2"] <-NA

, ноЕсть много уровней, которые мне нужно установить на NA, и я хотел бы упростить / автоматизировать этот процесс.

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете выбрать, какие уровни исключать, с помощью

to_exclude <- names(table(df$var)[table(df$var) < 6])

, где 6 - порог частоты.(table() возвращает именованный вектор частот, поэтому нам нужно извлечь из него имена с условным поднабором на основе значения freq).
И затем удалить все эти значения с помощью NA

df$var[df$var %in% to_exclude] <- NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...