R:"Which"函数在使用比较时给出意外(和不需要的)结果 (>=)



我不明白为什么"哪个"函数在这里没有给出正确的结果。我只想选择宾夕法尼亚州商业服务运营超过 5,000 个的机场,结果总是包含一些低于 5,000 个的商业服务运营,如下所示。

我已经阅读了几个问题,表明"哪个"的问题,但我没有看到那种问题,并且在使用此功能之前我没有遇到过这个问题。

Test4<-Airports[which(Airports$LAN_FA_TY=="AIRPORT" & 
                      Airports$STATE_NAME=="PENNSYLVANIA" & 
                      Airports$COMM_SERV>= "5000")
                , ]
Test4$COMM_SERV
# [1] 77680    73    71

在此代码片段中Airports$COMM_SERV>= "5000"您将数字(5000)使用" ",这会将数字转换为字符,因此您不能再使用该字符的数学运算,例如>=。只需删除",它应该按预期工作。 (允许对字符对象使用比较运算符,并且有意义。请参阅?'>=' 。只是结果可能不是预期的。

查看您的代码,您还可以从使用 with() 来减少键入并提高可读性中受益:

with(Airports, Airports[which(LAN_FA_TY == "AIRPORT" & STATE_NAME == "PENNSYLVANIA" & COMM_SERV >= 5000),])

最新更新