我已经用一定的因子水平对观察进行了子集化。当检查是否已经使用summary()
完成时,仍然列出了水平,但观察结果为零。它们不应该在子集中消失吗?
子集不会丢弃空白级别。为什么会这样,这是一个功能。您可以将其视为因素水平决定事物的可能/潜在类别。如果你只采用这些东西的一个子集,事物的可能类别不会改变,你的子集就不包含任何一个。
如果要删除这些空白级别,请参阅?droplevels
。
为了使额外的级别消失,在子集化时使用drop=TRUE
:
newfactor <- oldfactor[indices, drop=TRUE]
顺便提一下,这不是默认的一个原因是不能比较具有不同级别的因素。因此,如果您想要将您的因子与原始向量进行比较,或者可能是向量的不同子集,则需要保留额外的级别。