在R中创建“其他”级别的as.factor

时间:2018-11-09 05:09:23

标签: r

我正在将数据帧df中的字符变量转换为因数。我的一个字符变量(列)如下所示。

Age-Range
19-24
25-34
35-45
45-54
55-64
65-74
75+

我正在使用以下代码将此字符列转换为因子。

df <- mutate_if(df, is.character, as.factor)

除Age_Range以外的其他所有列都可以,summary()结果如下所示。

45-54: 1125
55-64: 984
35-44: 664
65-74:579
75+: 309
(Other):342
NA's: 997

我想知道为什么我看不到年龄范围-19-24和25-34。有人可以帮我理解为什么吗?

1 个答案:

答案 0 :(得分:4)

来自help(summary)

  

对于因子,显示了前maxsum - 1个最频繁的级别的频率,“(Others)”中汇总了不那么频繁的级别(导致最多maxsum个频率)。

因此,尝试向上调整maxsum参数,您将在结果中看到更多级别。默认值为100。这是使用attenu内置数据集的示例:

summary(attenu$station, maxsum = 3)
#    117 (Other)    NA's 
#      5     161      16 
summary(attenu$station, maxsum = 7)
#    117    1028     113     112     135 (Other)    NA's 
#      5       4       4       3       3     147      16