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

R语言数据集分组处理:如何同步实现末尾0及前置1或末尾1裁剪

R代码修改方案

你需要基于原始分组的末尾outcome值并行判断裁剪规则,避免分步执行导致的二次裁剪问题,修改后代码如下:

detect <- detect %>% 
  group_by(bird) %>% 
  mutate(new = cumsum(outcome)) %>%
  filter(
    case_when(
      last(outcome) == 0 ~ new < max(new),
      last(outcome) == 1 ~ row_number() < n()
    )
  ) %>%
  ungroup %>%
  select(-new)

逻辑说明

  • 所有判断都基于原始分组的末尾outcome值,两类规则同步执行,不存在先后处理的顺序,符合要求。
  • 若分组末尾为0:沿用原有逻辑,移除末尾连续0及前序最后一个1。
  • 若分组末尾为1:直接过滤掉分组最后一行记录,即移除末尾的1。

效果验证

针对你提供的样例数据,代码输出和预期结果完全一致:

birdoutcome
a0
a0
a1
b0
c1
c1

你举的0001100序列测试用例,分组末尾为0,执行第一类规则裁剪后得到0001,不会触发第二类规则,符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:15:04