事件后数据分组:筛选换雇主后personc的目标观测
解决方案
假设你的数据存储在数据框df中,这里提供两种常用的R语言处理方法:
方法一:使用dplyr(tidyverse生态)
先加载dplyr包,随后按步骤筛选、排序并提取目标行:
library(dplyr) # 处理数据 filtered_df <- df %>% # 仅保留personc的记录 filter(mpi == "personc") %>% # 按观测序号obs升序排列,确保时间顺序正确 arrange(obs) %>% # 找到换雇主(result为mover)的行位置,提取该行及之后4条记录 slice(which(result == "mover"):(which(result == "mover") + 4))
方法二:使用基础R
如果不想加载额外包,用基础R也能实现:
# 筛选personc的记录并按obs排序 personc_data <- df[df$mpi == "personc", ] personc_data <- personc_data[order(personc_data$obs), ] # 找到换雇主的行索引,提取目标范围的行 mover_pos <- which(personc_data$result == "mover") filtered_df <- personc_data[mover_pos:(mover_pos + 4), ]
运行上述代码后,filtered_df就是你期望的输出结果。
内容的提问来源于stack exchange,提问作者Connor Hill
相关产品推荐
相关产品推荐

