That helps, thank you. Something like this would give you the desired result.
library(tidyverse)
data <- structure(list(NAME = c("Jim", "Bob", "John", "Justin", "Jim",
"Bob", "John", "Justin", "Jim", "Bob", "John", "Justin", "Jim",
"Bob", "John", "Justin", "Jim", "Bob", "John", "Justin"),
SEASON = c(2020, 2019, 2020, 2018, 2019, 2018, 2019, 2017, 2018, 2017, 2018, 2016,
2017, 2016, 2017, 2015, 2016, 2015, 2016, 2014),
zscore = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)),
row.names = c(NA, -20L),
class = c("tbl_df", "tbl", "data.frame"))
data %>%
add_column(PLAYED = 1) %>%
arrange(SEASON) %>%
pivot_wider(id_cols = NAME, names_from = SEASON, values_from = PLAYED) %>%
filter_at(vars(`2016`:`2020`), all_vars(!is.na(.))) %>%
select(NAME)
#> # A tibble: 2 x 1
#> NAME
#> <chr>
#> 1 Jim
#> 2 John
Created on 2020-04-13 by the reprex package (v0.3.0)