我很少使用因子,通常认为它们是可以理解的,但我经常对特定操作的细节感到模糊。目前,我正在将几乎没有观察到的类别编码/折叠到“其他”中,并且正在寻找一种快速的方法来做到这一点——我可能有 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
和以上是实际的前 8 名,那么声明为因子变量top8_desc
的最佳方式是什么,以便正确编码中的值并将其他所有内容重新编码为?data$naics
top8
other