首页 > 解决方案 > 在 R 中标记运行的开始和结束

问题描述

我有下表,想用 T/F 值创建一个“开始”和“结束”列:

扳机 开始 结尾
1 F
1 F F
0 F
1 F
0 F
1 F
1 F F

如何在 R 中做到这一点?

非常感谢

标签: rdataframedata-manipulationdata-cleaning

解决方案


根据:

df <- data.frame(Trigger = c(1, 1, 0, 1, 0, 1, 1))
df$Beginning <- df$Trigger & !c(0, df$Trigger[-nrow(df)]) 
df$End <- !df$Trigger & c(0, df$Trigger[-nrow(df)]

整洁的:

mutate(
  df, 
  Beginning = Trigger & !lag(Trigger, default = FALSE),
  End = !Trigger & lag(Trigger, default = TRUE)  # May want to use FALSE depending on use case.
)  

推荐阅读