Oi Eduardo, tudo bem, e com você?
Pela sua explicação, a função dplyr::case_when() pode ser útil.
E nessa resposta existe exemplos de como usar case_when() com across() para aplicar a mesma regra em várias colunas: r - Using case_when with dplyr across - Stack Overflow
Se você quiser um exemplo com código, recomendo colocar um exemplo da base (mesmo que curta… a função dput() ajuda nisso, pois gera no console o código para criar o dataset sem que vc precise exportar em um arquivo. por exemplo:)
library(magrittr, include.only = "%>%")
mtcars %>%
# sortear 10 linhas
dplyr::slice_sample(n = 10) %>%
# selecionar colunas interessantes pro exemplo
dplyr::select(wt:am) %>%
dput()
#> structure(list(wt = c(1.513, 2.465, 3.78, 2.32, 3.19, 3.215,
#> 3.84, 3.435, 3.44, 3.845), qsec = c(16.9, 20.01, 18, 18.61, 20,
#> 19.44, 15.41, 17.3, 18.3, 17.05), vs = c(1, 1, 0, 1, 1, 1, 0,
#> 0, 1, 0), am = c(1, 0, 0, 1, 0, 0, 0, 0, 0, 0)), row.names = c("Lotus Europa",
#> "Toyota Corona", "Merc 450SLC", "Datsun 710", "Merc 240D", "Hornet 4 Drive",
#> "Camaro Z28", "AMC Javelin", "Merc 280", "Pontiac Firebird"), class = "data.frame")
Created on 2021-09-24 by the reprex package (v2.0.1)