I use dplyr for this which makes it very simple. Tibbles are great but works on data frame too.
data |> mutate( across(where(is.character), ~na_if(., "NA")) )