首页 > 解决方案 > 排除列中值的过滤函数

问题描述

我试图通过仅选择小于 5001 的值然后选择等于 6000 及以上的任何值来过滤数据框中的列

这就是我所拥有的,但它不起作用并且不确定为什么

METable <- subset(outputdata, outputdata$Store.No < 5001 | outputdata$Store.No > 5999)

我参考下面的答案使用了上​​面的代码,但出于某种奇怪的原因,它仍然不适合我。所以 Store.No 列中的 outputdata 数据框我只有商店 5035 ......这意味着 METable df 中不应该显示任何内容,但它仍然存在......我在这里遗漏了什么简单的东西

标签: rdataframefilterconditional-statementssubset

解决方案


您正在应用两个不可能匹配的条件。您是在告诉 Store.No 必须低于 5001 并同时优于 5999。如果您想要小于 5001 的所有内容和高于 6000 的所有内容,您必须这样做:

METable <- subset(outputdata, outputdata < 5001 | outputdata > 5999)

另请注意,您应该比较数字(不带“”),因为这可能会出现意外行为,例如:

"2" > "11"  - Returns True

推荐阅读