我有一个因子列,但我得到一个缺失的水平,为什么R创建这个缺失的水平呢?
d0s$y
[1] E E E E E E G G G G G G G P P P P P P P
Levels: E G P
levels(d0s$y)
[1] "" "E" "G" "P"
""
子集设置之前,数据集中可能有空白。一种方法是调用droplevels
以删除未使用的级别
d0s$y <- droplevels(d0s$y)
或factor
再次致电
d0s$y <- factor(d0s$y)
但是,也可能是""
元素已经存在,但是因为它是factor
打印选项,所以没有显示它
y1 <- factor(rep(c("E", "G", "P", ""), each = 3))
y1
#[1] E E E G G G P P P
#Levels: E G P
levels(y1)
#[1] "" "E" "G" "P"
假设,如果我们将“ y1”作为子集
y2 <- y1[y1 %in% c("E", "G", "P")]
levels(y2) #the unused levels are still there
#[1] "" "E" "G" "P"
除非我们降低这些水平
levels(droplevels(y2))
#[1] "E" "G" "P"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句