R: niveles de factor, recodificar resto a 'otro'

Utilizo los factores con poca frecuencia y, en general, los encuentro comprensibles, pero a menudo me siento confuso acerca de los detalles para operaciones específicas. Actualmente, estoy codificando / colapsando categorías con pocas observaciones en "otro" y estoy buscando una manera rápida de hacerlo: tengo quizás 20 niveles de una variable, pero estoy interesado en colapsar un grupo de ellos en uno.

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))

Aquí están mis niveles de interés, y sus etiquetas en vectores separados.

#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')

Podría usar elfactor() llame, enumérelos todos, clasifíquelos como "otros" por cada vez que una categoría tuvo pocas observaciones.

Suponiendo que eltop8 ytop8_desc arriba están los 8 mejores, ¿cuál es la mejor manera de declarardata$naics como un factor variable para que los valores entop8 están correctamente codificados y todo lo demás se recodifica comoother?

Respuestas a la pregunta(4)

Su respuesta a la pregunta