如何用dplyr将数据框行拆分为起始/结束事件列?
用dplyr转换数据框格式的解决方案
直接上可运行的dplyr代码,能适配你的50个重复组场景:
library(dplyr) result_df <- df %>% group_by(rep) %>% mutate( Start = Event, End = lead(Event) ) %>% filter(duration != 0) %>% select(rep, Start, End, duration) %>% ungroup()
代码逻辑说明
group_by(rep):按rep分组,确保每个重复组内的事件序列单独处理,不会跨组混淆mutate部分:把当前行的Event设为起始事件Start,用lead()函数抓取同组下一行的Event作为结束事件Endfilter(duration != 0):直接筛掉时长为0的初始行select:调整列的顺序,只保留需要的字段ungroup():取消分组状态,方便后续对整个数据框操作(如果不需要可以省略)
运行这段代码后,输出的result_df就是你想要的格式。
内容的提问来源于stack exchange,提问作者Werrby
相关产品推荐
相关产品推荐

