You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中筛选数值处于CatMin与CatMax区间的数据行失败求助

问题排查与解决

你遇到的核心问题是筛选逻辑写反了,咱们来一步步理清:

错误原因拆解

你写的筛选条件是:

with(refDat, CatMax <= 30 & CatMin >= 30)

这个条件要求CatMax≤30的同时CatMin≥30,相当于要求CatMin ≥ CatMax,但你的数据框里所有行都是CatMin < CatMax,所以必然全返回FALSE。

而你实际需要的逻辑是:数值30落在CatMin和CatMax之间,也就是30 ≥ CatMin且30 ≤ CatMax,对应代码里的表达式应该是CatMin <= 30 & CatMax >= 30。

正确代码实现

运行下面的正确代码就能得到你想要的结果:

# 筛选30所在的行
target_row <- refDat[with(refDat, CatMin <= 30 & CatMax >= 30), ]
target_row

输出结果正是你期望的第3行:

CatMin CatMax correctionRef
3     28     33             0

可选的更直观写法

如果你习惯用dplyr包,也可以用更易读的filter函数:

library(dplyr)
refDat %>% filter(CatMin <= 30, CatMax >= 30)

执行后同样会返回正确的行。

内容的提问来源于stack exchange,提问作者89_Simple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:27:50