R dplyr фильтр даты, основанный на другой переменной - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь отфильтровать строки по датам только до строки, где ответ «Да» , т. Е. Первое да или самое раннее да.Любая помощь будет принята с благодарностью.

Date <- c("1/2/2018", "1/3/2018", "1/4/2018", "1/5/2018", "1/6/2018", "1/7/2018", "1/8/2018")
Response <- c("No", "No", "No", "Yes", "No", "No", "Yes")

df <- cbind(Date, Response)

1 Ответ

0 голосов
/ 24 февраля 2019

Предполагая, что вы хотите оставить первый ответ "Да", вы можете сделать:

library(dplyr)
df <- data.frame(Date, Response, stringsAsFactors = FALSE)

df %>%
  filter(cumsum(lag(Response, default = "") == "Yes") < 1)

      Date Response
1 1/2/2018       No
2 1/3/2018       No
3 1/4/2018       No
4 1/5/2018      Yes
...