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

如何筛选未包含[-1,0]区间数值的唯一ID对应行?

解决方案

可以通过dplyr的分组筛选逻辑实现需求,核心是先按id分组,判断每个分组内是否存在落在[-1, 0]区间的数值,再保留完全无此类数值的分组的所有行。

实现代码

library(dplyr)

df <- data.frame (id  = c(1,1,1,1,1,1,1,1,2,2,2,2,2, 3, 3),
                  number = c(-10, -9, -8, -1, -0.5, 0.0, 0.23, 5, -2, -1.1, -.88, 1.2, 4, -10,10))

# 筛选无[-1,0]区间测量值的ID对应的所有行
result_df <- df %>%
  group_by(id) %>%
  filter(all(!(number >= -1 & number <= 0))) %>%
  ungroup()

result_df

代码说明

  • group_by(id):按ID对数据集分组,便于针对每个ID的所有测量值做统一判断
  • filter(all(!(number >= -1 & number <= 0))):
    • number >= -1 & number <= 0 用于判断单个数值是否落在目标区间
    • ! 取反后,得到「数值不在目标区间」的判断结果
    • all() 确保当前分组的全部数值都满足「不在目标区间」的条件,只有符合该条件的分组才会被保留
  • ungroup():取消分组,恢复常规数据框结构

运行结果

执行后将得到仅包含ID为3的两行数据:

# A tibble: 2 × 2
     id number
  <dbl>  <dbl>
1     3    -10
2     3     10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:35:18