Here is one way using mutate_at()
.
library(tidyverse)
dat <- data.frame(
dog = c(NA, 88, 38, NA),
cat = c(33, 33, 23, 53),
monkey = c(33, 23, NA, NA),
rabbit = c(3838, NA, 623, 2323),
angel = c(8484, 8484, 3344, 8484)
)
dat
#> dog cat monkey rabbit angel
#> 1 NA 33 33 3838 8484
#> 2 88 33 23 NA 8484
#> 3 38 23 NA 623 3344
#> 4 NA 53 NA 2323 8484
out = dat %>%
mutate_at(.vars = c('dog', 'cat', 'monkey'),
.funs = ~ifelse(is.na(dog + cat + monkey), NA, .)
)
out
#> dog cat monkey rabbit angel
#> 1 NA NA NA 3838 8484
#> 2 88 33 23 NA 8484
#> 3 NA NA NA 623 3344
#> 4 NA NA NA 2323 8484
Created on 2022-11-22 with reprex v2.0.2.9000