我有一個相當大的數據幀,其中有一個很多級別(超過4,000)的因子。我在同一個數據框中使用另一列作爲參考,並且我希望找到的是每當此引用列爲NA時的級別的子集。R - 僅顯示數據幀子集中使用的級別
我正在使用的第一步是subsetrows <- which(is.na(mydata$reference))
但之後我卡住了。我想要類似levels(mydata[subsetrows,mydata$factor])
,但不幸的是,該命令顯示我所有級別,而不僅僅是subsetrows
中存在的級別。我想我可以創建一個新的向量我的數據框只有我的子集行,然後刪除任何未使用的水平,但有沒有更簡單/更乾淨的方式來做到這一點,可能沒有複製我的數據以外的數據框?如果我的數據框有從A到Z的因子水平,但在我的子集中只有P,R和Y出現,我想要返回水平P,R和Y的東西。
也許這可能有助於http://stackoverflow.com/questions/1195826/dropping-factor-levels-in-a-subsetted-data-frame-in-r – NicE 2015-02-17 21:45:32
你可以嘗試'水平(mydata $因子)[ MYDATA $因子subsetrows]'? – 2015-02-17 21:52:19
那麼,使用你以前的'唯一'的想法,事實證明給了我正確的等級:'unique(as.character(mydata $ factor [subsetrows]))' – 2015-02-17 22:10:44