我有一个相当大的数据帧,其中有一个很多级别(超过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