从数据框内的因子中删除级别

时间:2016-10-18 10:45:12

标签: r dataframe

我有一个'qlfs'数据框,其中包含一个'qlfs $ TravelMode'列。

$ TravelMode是一个包含10个级别的因素:

levels(qlfs$TravelMode)
[1] "Non-working adult"                   
[2] "Car,van,minibus,works van"           
[3] "Motorbike,moped,scooter"             
[4] "Bicycle"                             
[5] "Bus,coach,private bus"               
[6] "Taxi"                                
[7] "Railway train"                       
[8] "Underground train,light railway,tram"
[9] "Walk"                                
[10] "Other method"                    

数据集包含90k +行。

我想从更广泛的数据框中删除第1级(非工作成人)和任何相关行。

我尝试了以下内容:

for (i in 1:NROW(qlfs$TravelMode)) {
   if(qlfs$TravelMode[i]="Non-working adult") {
       qlfs$TravelMode[i] <- "NA"
   }
}

然后我会在稍后删除NA,但这不起作用。

我也查看了droplevels()函数,但无法使其工作。

有人能指出我出错的地方或建议更好的方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

只需删除您不想要的行,然后重新创建因子。

d <- factor(letters[1:20])

d <- d[d != 'a']
d <- factor(d)

levels(d)