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

R语言无需新增列即可按数值阈值过滤因子列对应DataFrame数据行

解决方案

以下两种方案均不需要新增中间列,可直接实现需求:

方法1:tidyverse(dplyr)方案

直接在分组后调用filter()对整组做条件判断即可:

library(dplyr)
threshold <- 2.5
res_df <- df %>%
  group_by(cells) %>%
  filter(all(values >= threshold)) %>%
  ungroup()

说明:all(values >= threshold)会对每个cells分组内的所有数值做校验,只有该组全部数值都满足≥阈值的条件,才会保留该组的所有行。

方法2:base R 方案

无需加载第三方包,用ave()实现分组过滤:

threshold <- 2.5
res_df <- df[ave(df$values, df$cells, FUN = function(x) all(x >= threshold)) == 1, ]

说明:ave()会按cells分组对values应用校验函数,返回和原数据行数一致的逻辑向量,直接用作行索引即可完成过滤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 14:03:03