I saw your message from another topic, but when I finish typing, the original message was deleted, here're my reply to that:
for this situation, it's not that easy to apply a treatment to multiple global-environment variables, I suggest you pre-process the original list then transfer them into vars.
map() is a traversal function from purrr package which can apply a function to each element of a list or atomic vector. In your case, you can try:
base <- base %>% map(
~ .x %>% mutate(
across(where(is.numeric), ~ replace_na(.x, 0)),
across(where(is.character), ~ replace_na(.x, ""))
))
# replace_na() will return same datatype as input, so you can't pass "" to a numeric nor 0 to a character
# then :
for (i in names(base)) assign(i,base[[i]])
hope it can help!