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

R语言分组新增列标识组内是否存在满足指定条件的观测

问题原因

你当前的代码是对分组内的每一行单独判断Dead列的取值,没有对组内所有行的结果做聚合,所以输出的affected列和Dead列完全一致,没有实现按组统一赋值的需求。

正确实现代码

只需要在判断时加入any()函数对组内结果做聚合即可,针对大数据集也可以正常运行:

test1 <- LargeSet %>% 
  group_by(Group_ID) %>%
  mutate(affected = as.integer(any(Dead >= 1, na.rm = TRUE)))

如果需要保留case_when的写法也可以调整为:

test1 <- LargeSet %>% 
  group_by(Group_ID) %>%
  mutate(affected = case_when(
    any(Dead >= 1, na.rm = TRUE) ~ 1,
    TRUE ~ 0
  ))
代码说明
  • any(Dead >= 1)会对当前分组内所有行的Dead值做判断,只要存在至少1条满足Dead >= 1的记录,就返回TRUE,否则返回FALSE
  • as.integer()会自动把逻辑值TRUE/FALSE转为1/0,符合输出要求
  • 加入na.rm = TRUE是为了避免组内存在NA值时判断结果返回NA,如果数据集没有缺失值可以去掉这个参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:02