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

如何根据A列值筛选DataFrame中C列符合条件的行?

正确的dplyr筛选实现方法

先说说你原来代码的问题:

  • 普通if是标量判断,没法对每一行分别根据A的值应用筛选规则,得用逐行的逻辑条件
  • 筛选条件搞反了:需求是移除小于阈值的行,所以要保留的是大于等于阈值的行
  • 原数据里A是数值型(1/0),你写成A == '1'是字符串比较,会匹配不到

下面是两种可行的正确写法:

方法1:直接用逻辑组合条件

library(dplyr)

test <- df %>%
  filter(
    (A == 1 & C >= 0.3) | 
    (A == 0 & C >= 20)
  )

方法2:用case_when更清晰(适合多条件场景)

test <- df %>%
  filter(
    case_when(
      A == 1 ~ C >= 0.3,
      A == 0 ~ C >= 20,
      TRUE ~ FALSE  # 其他情况直接过滤掉
    )
  )

运行后得到的结果就是你要的预期输出:

A    B    C    D    E
1    0    0.5  5    0
1    7    0.3  4    4
0    2    20   2    2
1    0    0.9  2    1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:05:24