I guess the column name of squads should not be the one in your tribble function. So I changed it a little.
and is that what you want?
squads <- tibble::tribble(
~ID, ~pepper1, ~pepper2, ~pepper3,
1L, 'Black pepper', 'Chili lime', 'Nashville hot',
2L, "BBQ", "Honey mustard", "Teriyaki",
3L, "Buffalo", "Korean BBQ", NA,
4L, "BBQ", "Chili lime", "Korean BBQ",
5L, "BBQ", "Black pepper", "Chili lime",
6L, "BBQ", "Buffalo", "Nashville hot",
7L, "BBQ", "Buffalo", "Honey mustard",
8L, "Black pepper", "Gochujang", "Korean BBQ",
9L, "Black pepper", "Chili lime", "Gochujang",
10L, "Chili lime", "Gochujang", "Indian curry",
11L, "Kung pao", "Peri Peri", "Sweet heat",
12L, NA, NA, NA,
13L, "Buffalo", "Gochujang", "Korean BBQ",
14L, NA, NA, NA,
15L, "BBQ", "Black pepper", "Chili lime"
)
squads %>% pivot_longer(cols = -ID,names_to = 'order',values_to = 'pepper.choosed') %>%
filter(!is.na(pepper.choosed)) %>% mutate(exist = TRUE) %>% select(-order) %>%
pivot_wider(names_from = 'pepper.choosed', values_from = 'exist') %>%
mutate(across(-ID,~replace_na(.x,FALSE)))
owing to the information given is very limited, I'm not sure if I've done it right. Could you describe what you want to achieve?