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

如何保留至少满足一次条件的ID的全部数据行?

解决重复测量数据框的个体筛选问题

你的问题出在filter(category=="blood")这一步——它会在每个id组里只保留符合条件的行,而非保留该个体的全部数据。要实现保留所有至少有一次满足条件的个体的全部行,需要先在组内判断该个体是否存在符合条件的记录,再基于这个判断保留整组数据。

正确的dplyr代码如下:

dat2 <- dat1 %>%
  group_by(id) %>%
  filter(any(category == "blood")) %>%  # 判断组内是否存在至少一条符合条件的记录
  ungroup()

解释:

  • any(category == "blood")会对每个id组返回一个逻辑值:如果组内有至少一行的category等于"blood",就返回TRUE,否则返回FALSE。
  • 当filter接收这个组级的逻辑值时,会保留整个组的所有行(只要组的判断结果是TRUE)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:05:24