R中的缺失因子水平

奥里尔·普拉特(Oriol Prat)

我有一个因子列,但我得到一个缺失的水平,为什么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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章