我有一个'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()函数,但无法使其工作。
有人能指出我出错的地方或建议更好的方法来实现这个目标吗?
答案 0 :(得分:0)
只需删除您不想要的行,然后重新创建因子。
d <- factor(letters[1:20])
d <- d[d != 'a']
d <- factor(d)
levels(d)