使用R语言dplyr判断面板数据中观测值是否存在于下一时期
使用data.table实现
利用data.table高效的分组操作完成需求:
library(data.table) # 将数据框转换为data.table格式(如果还不是的话) setDT(df) # 新增目标变量 df[, has_next_year := (Year + 1) %in% unique(Year), by = ID]
逻辑说明
by = ID:按ID分组执行后续操作- 核心判断逻辑和dplyr一致,通过
%in%检查下一年是否存在于当前个体的观测年份中
结果验证
根据你提供的数据集,运行后结果符合预期:
- ID1的2020、2021年返回TRUE,2022年因无后续观测返回FALSE
- ID2的2020年返回TRUE,2021年返回FALSE
- ID3的2020年返回FALSE
内容的提问来源于stack exchange,提问作者Wafa
相关产品推荐
相关产品推荐

