NA の処理

NA とは

  • NA (Not Applicable or Not Available) : 欠損値
    • 分析の邪魔になることも多い
      • そのため、分析の際は欠損値が含まれる行を取り除きたい!

NA の列がある行の除去

  • tidyr::drop_na()
    • 行の中で1つでもNAがあれば除去
    • 引数に列名を指定すれば、その列においてNAがある行を全て除去
      • それ以外の行でNAを含むかは考慮しない

  • starwarsデータセット
    • NA を含む行が存在
dplyr::starwars
  • tidyr::drop_na() の実行
dplyr::starwars |> 
  tidyr::drop_na() # NAを1つでも含む行を除去
dplyr::starwars |> 
  tidyr::drop_na(hair_color) # hair_color列がNAの行を除去

NA を別の値へ置き換え

  • tidyr::replace_na( list(列名 = 置き換え後の値) )
    • NAを指定した値に置換
      • list()の中は複数定義可

dplyr::starwars |> 
  tidyr::replace_na(
    list(hair_color = "unknown")
  )
  • tidyr::fill(列名, .direction = “方向”)
    • NAをその上 or 下の行の値に置換
      • 方向は up (上の行へと反映させていく) か down (下の行へと反映させていく)
      • 列名は複数並列可

dat <- tibble::tibble(
      id = c(1, 2, 3, 4, 5, 6, 7, 8),
      year = c(2020, NA, NA, NA, 2021, NA, NA, 2022),
      value = c(100, 101, 102, 103, 104, 105, 106, 107),
    )
dat
dat |> 
    tidyr::fill(year, .direction = "down")