R | NA→0 or 0→NAの変換

集計を行う際に、NAの取り扱いに注意。
例として、NA+100=NAとなることなど。

1. dplyr::if_else を使用して0 を NA に置換

 dat %>% mutate(x = if_else(x == 0, NA_real_, x))

dplyr::if_else はデータ型 を揃える必要があることに注意。

2. mutate_if or mutateを使用してNAを0に変換

dat <- dat %>% 
    mutate_if(is.numeric, ~ replace_na(.x, 0))

あるいは

dat <- dat %>%
    mutate(across(where(is.numeric), ~ replace_na(.x, 0))) 

mutate(across())の場合は、across()の中に関数も入れることに注意。