In the following data, for each id, I would like to remove rows after the first 1 is reached. My data is as follows:
 id x
  a 0
  a 0
  a 1
  a 0
  a 1
  b 0
  b 1
  b 1
  b 0
The desired output:
 id x
  a 0
  a 0
  a 1
  b 0
  b 1
Code to reproduce data:
df <- structure(list(id = c("a", "a", "a", "a", "a", "b", "b", "b", 
"b"), x = c(0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L)), class = "data.frame", row.names = c(NA, 
-9L))
This is not a duplicate question, although similar to this. I used cumall() to remove all rows after the first 1:
df <- df%>%
  group_by(id) %>%
  filter(cumall(!(x == 1))) %>%
  ungroup()
But the caveat here is that I want to include the row with the first 1 as well.
Any help is appreciated, preferably using dplyr!