Something like this would work:
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df<- data.frame( A= c(1:10),B=c(11:20),C=c(21,30))
replace_with_na <- function(vector, value){
vector[vector > value] <- NA_real_
vector
}
df %>%
dplyr::mutate(B = replace_with_na(B, 18),
C = replace_with_na(C, 21))
#> A B C
#> 1 1 11 21
#> 2 2 12 NA
#> 3 3 13 21
#> 4 4 14 NA
#> 5 5 15 21
#> 6 6 16 NA
#> 7 7 17 21
#> 8 8 18 NA
#> 9 9 NA 21
#> 10 10 NA NA
Created on 2019-11-11 by the reprex package (v0.3.0)