Я пытаюсь использовать dplyr filter_at, чтобы отфильтровать любого человека, который был прерван в любой момент. Тем не менее, он продолжает давать мне неправильный ответ.
Вот пример набора данных:
problem <- tibble(name = c("Sally", "Frank", "Joe"),
status1 = c("On Staff", "On Staff", "On Staff"),
status2 = c("On Staff", "Term", "On Staff"),
status3 = c("On Staff", "Term", "Term"),
status4 = c("Promoted", "Rehired", "Term"))
Как видите, у меня много переменных, которые начинаются со статуса, поэтому я пробовал filter_at для всех переменных, которые содержат статус:
problem %>%
filter_at(vars(contains("status")), any_vars(. != "Term))
К сожалению, это дает бесполезный результат:
# A tibble: 3 x 5
name status1 status2 status3 status4
<chr> <chr> <chr> <chr> <chr>
1 Sally On Staff On Staff On Staff Promoted
2 Frank On Staff Term Term Rehired
3 Joe On Staff On Staff Term Term
Вместо этого я хочу, чтобы конечный продукт выглядел так:
# A tibble: 1 x 5
name status1 status2 status3 status4
<chr> <chr> <chr> <chr> <chr>
1 Sally On Staff On Staff On Staff Promoted
Что я делаю не так?