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

R语言:基于Age变量过滤Position特定原子水平的技术咨询

基于Age过滤Position的实现方案

没问题,我来帮你搞定这个职位过滤的需求!先把规则再明确一遍,避免理解偏差:

  • 无条件保留所有 Analyst 和 CEO 记录,不管Age是多少
  • 对于 Analyst Level II、Ceo Level II、Manager II 这三个职位:
    • 仅当Age ≥ 58时保留该记录
    • Age < 58时直接移除

补全测试数据框

你提供的测试数据没写完,我先帮你补全(确保Age从50到69共20条,每个职位重复4次):

library(tibble)
Test <- tibble(
  Age = 50:69,
  Position = rep(c("Analyst", "Analyst Level II", "CEO", "Manager II", "Ceo Level II"), each = 4)
)

实现过滤逻辑

用dplyr包的filter()函数可以轻松实现这个规则,代码如下:

library(dplyr)

filtered_Test <- Test %>%
  filter(
    # 第一组:不受年龄限制的职位
    Position %in% c("Analyst", "CEO") |
    # 第二组:受年龄限制的职位,仅保留Age≥58的
    (Position %in% c("Analyst Level II", "Ceo Level II", "Manager II") & Age >= 58)
  )

代码解释

这个逻辑用|(逻辑或)连接了两个条件组:

  1. 第一个条件Position %in% c("Analyst", "CEO"):直接匹配不需要过滤的职位,全部保留
  2. 第二个条件是一个组合判断:先匹配需要过滤的三个职位,再加上Age >= 58的限制,只有同时满足才保留

验证结果

比如查看Age=50-57的记录:

  • Age=50的Analyst会被保留
  • Age=50的Analyst Level II会被移除
  • Age=58的Manager II会被保留

你可以直接打印filtered_Test来确认所有记录都符合规则~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:49:25