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

R语言如何按id分组筛选首行满足指定条件的整组数据

方法1:使用dplyr包实现(最简洁)

先加载dplyr包,按id分组后判断组内首行是否符合条件即可:

library(dplyr)

result <- dataframe %>%
  group_by(id) %>%
  filter(first(time) == 1 & first(treatment) == 0) %>%
  ungroup()

运行后得到的result和预期输出完全一致,id=2(首行treatment为1)、id=4(首行treatment为NA)会被自动排除。


方法2:base R实现(无需加载第三方包)

# 按id拆分数据集
split_df <- split(dataframe, dataframe$id)
# 筛选首行符合要求的id分组
keep_group <- sapply(split_df, function(x) {
  first_row <- x[1,]
  first_row$time == 1 & !is.na(first_row$treatment) & first_row$treatment == 0
})
# 合并符合条件的分组得到结果
result <- do.call(rbind, split_df[keep_group])
rownames(result) <- NULL

打印result即可验证输出和需求一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:45:03