【发布时间】:2018-10-25 21:29:36
【问题描述】:
我有一个数据框 df,其中有一列 foo 包含类型因子的数据:
df <- data.frame("bar" = c(1:4), "foo" = c("M", "F", "F", "M"))
当我使用 str(df$foo) 检查结构时,我得到了:
因子 w/ 3 级 "","F",..: 2 2 2 2 2 2 2 2 2 2 ..
为什么在我的数据中只有 2 个级别时它会报告 3 个级别?
编辑:
似乎有一个缺失值"",我通过分配它NA 来清理它。
当我调用table(df$foo) 时,它似乎仍在计算“缺失值”级别,但没有发现任何情况:
F M
0 2 2
但是,当我打电话给df$foo 时,我发现它只报告了两个级别:
Levels: F M
table 怎么可能仍然计算空级别,我该如何解决这种行为?
【问题讨论】:
-
您的某些单元格中似乎有
MF的空值。尝试table(df$MF)获取计数。 -
我怀疑 MF 列中存在缺失值。您发布的那 4 行是整个框架,还是更多?
-
谢谢!我检查了是否有空单元格,但没有。如果我做 table(df$MF),我会发现:0,F 220,M 21。那个 0 是从哪里来的?
-
请不要发布严重保密的图片。我建议您查看this guide,了解如何发布出色的可复制 R MCVEs
-
@Afke,我编辑了我的答案。请永远不要删除原始问题内容,因为在编辑之前做出的所有答案都会变得不连贯。相反,请编辑问题并附加任何新的观察结果。这样,您的问题将提供更完整的画面,并且答案仍然是连贯的。