R: уровни факторов, перекодировать остальные в «другое»

Я использую факторы несколько редко и, как правило, нахожу их понятными, но я часто размышляю о деталях конкретных операций. В настоящее время я кодирую / сворачиваю категории с несколькими наблюдениями в «другое» и ищу быстрый способ сделать это - у меня есть, возможно, 20 уровней переменной, но мне интересно свести кучу их в один.

data <- data.frame(employees = sample.int(1000,500),
                   naics = sample(c('621111','621112','621210','621310','621320','621330','621340','621391','621399','621410','621420','621491','621492','621493','621498','621511','621512','621610','621910','621991','621999'),
                                  100, replace=T))

Вот мои уровни интереса и их метки в отдельных векторах.

#levels and labels
top8 <-c('621111','621210','621399','621610','621330',
         '621310','621511','621420','621320')
top8_desc <- c('Offices of physicians',
               'Offices of dentists',
               'Offices of all other miscellaneous health practitioners',
               'Home health care services',
               'Offices of Mental Health Practitioners',
               'Offices of chiropractors',
               'Medical Laboratories',
               'Outpatient Mental Health and Substance Abuse Centers',
               'Offices of optometrists')

Я мог бы использоватьfactor() Вызовите, перечислите их все, классифицируя как «другое» для каждого случая, когда у категории было мало наблюдений.

Предполагая, чтоtop8 а такжеtop8_desc выше приведены топ-8, что является лучшим способом объявитьdata$naics в качестве факторной переменной, так что значения вtop8 правильно закодированы, а все остальное закодировано какother?

Ответы на вопрос(4)

Ваш ответ на вопрос