I have the following table and want to make a "Beginning" and "End" column with T/F values:
Trigger | Beginning | End |
---|---|---|
1 | T | F |
1 | F | F |
0 | F | T |
1 | T | F |
0 | F | T |
1 | T | F |
1 | F | F |
How can this be done in R?
Many thanks
Base:
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)]
tidyverse:
mutate(
df,
Beginning = Trigger & !lag(Trigger, default = FALSE),
End = !Trigger & lag(Trigger, default = TRUE) # May want to use FALSE depending on use case.
)