我有一个数据框,其中包含多个具有 5 个因子级别的变量。我只想删除其中一个级别。首先,我将该级别的所有实例分配给 NA,然后使用droplevels
命令删除空级别。
但是,对于我的数据框中的一个变量,我不想删除的级别之一没有观察到。有没有办法只删除一个特定的因子水平,而不仅仅是空的。
这是一个可重现的示例
df <- data.frame(var1=rep(letters[1:5],2),var2=rep(letters[5:1],2),var3=c("a","c","d","e","a","c","d","e","a","c"))
levels(df$var3)<-c("a","c","d","e","b")
这设置了一个像我一样的数据框。现在我想删除级别 e 的所有实例,然后将其作为可能的级别删除。我用下面的代码做到这一点。
df2<-replace(df, df=="e",NA)
df2<-droplevels(df2)
问题是当我使用droplevels
它时,它也会从 var3 中降低 b 级。我不想从所有变量中删除级别 b 只是级别 e。我一直在寻找一种仅删除特定级别的方法,但没有找到答案。谁能告诉我如何只删除一个特定的因子水平?理想情况下,我想要的是一个droplevels
命令,我可以告诉它只删除级别 e。有这样的功能吗?