可能重複:
dropping factor levels in a subsetted data frame in R鬼因子水平
我已經離開子集的意見具有一定的因子水平。在檢查這是否已用summary()
完成時,水平仍然列出,但是沒有觀察值。它們不應該在子集化期間消失嗎?
可能重複:
dropping factor levels in a subsetted data frame in R鬼因子水平
我已經離開子集的意見具有一定的因子水平。在檢查這是否已用summary()
完成時,水平仍然列出,但是沒有觀察值。它們不應該在子集化期間消失嗎?
子集不會刪除空白級別。爲什麼這是這種情況是它是一個功能。把它看作你的因素水平決定了東西的可能/潛在類別。如果你只採取這些東西的子集,東西的可能類別不會改變,你的子集不包含任何這些東西。
如果要刪除這些空白級別,請參閱?droplevels
。
爲了使多餘的層次消失,使用drop=TRUE
子集化時:
newfactor <- oldfactor[indices, drop=TRUE]
順便說一句,一個原因,這是不是默認的是,與不同層次的因素所不能比擬的。所以如果你想比較你的因素與原始矢量,或可能是一個不同的矢量子集,你需要保持額外的水平。
將'droplevels'應用於數據框架的唯一危險是,默認情況下,它將爲所有**因素(而不是僅針對焦點因子的水平)降低空值,這可能是不希望的。 –
對,如果我想讓其他因素保持不變,對於單一因素,我會做'obj < - 變換(obj,fac = droplevels(fac))'。 –