tidyr (version 1.1.4)

replace_na: Replace NAs with specified values


Replace NAs with specified values


replace_na(data, replace, ...)



A data frame or vector.


If data is a data frame, replace takes a list of values, with one value for each column that has NA values to be replaced.

If data is a vector, replace takes a single value. This single value replaces all of the NA values in the vector.


Additional arguments for methods. Currently unused.


  • If data is a data frame, replace_na() returns a data frame.

  • If data is a vector, replace_na() returns a vector, with class given by the union of data and replace.

See Also

dplyr::na_if() to replace specified values with NAs; dplyr::coalesce() to replaces NAs with values from other vectors.


# Replace NAs in a data frame
df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"))
df %>% replace_na(list(x = 0, y = "unknown"))

# Replace NAs in a vector
df %>% dplyr::mutate(x = replace_na(x, 0))
# OR
df$x %>% replace_na(0)
df$y %>% replace_na("unknown")

# Replace NULLs in a list: NULLs are the list-col equivalent of NAs
df_list <- tibble(z = list(1:5, NULL, 10:20))
df_list %>% replace_na(list(z = list(5)))
# }