概要
dplyr
パッケージに含まれるcoalesce()
, na_if()
は、欠損値を操作する関数です。
関連ページ
関数
coalesce(x, y)
na_if(x, y)
引数 | 指定 | 説明 |
---|---|---|
x | 必須 | 置換する列名を指定する |
y | 必須 | 参照する 列名または値 を指定する |
使い方
解説用データフレーム
df <- tibble(
x1 = c(1, 2, 3, 4, NA),
x2 = c(5, 4, 3, 2, 1),
)
> df
# A tibble: 5 x 2
x1 x2
<dbl> <dbl>
1 1 5
2 2 4
3 3 3
4 4 2
5 NA 1
1.欠損値を置換する
1-1.列指定
# 列x1の欠損値を列x2の値に置換する
mutate(df, y1 = coalesce(x1, x2))
# A tibble: 5 x 3
x1 x2 y1
<dbl> <dbl> <dbl>
1 1 5 1
2 2 4 2
3 3 3 3
4 4 2 4
5 NA 1 1
1-2.値指定
# 列x1の欠損値を0に置換する
mutate(df, y1 = coalesce(x1, 0))
# A tibble: 5 x 3
x1 x2 y1
<dbl> <dbl> <dbl>
1 1 5 1
2 2 4 2
3 3 3 3
4 4 2 4
5 NA 1 0
2.欠損値に置換する
2-1.列指定
# 列x2と一致する列x1の値を欠損値に置換する
mutate(df, y1 = na_if(x1, x2))
# A tibble: 5 x 3
x1 x2 y1
<dbl> <dbl> <dbl>
1 1 5 1
2 2 4 2
3 3 3 NA
4 4 2 4
5 NA 1 NA
2-2.値指定
# 列x1の2を欠損値に置換する
mutate(df, y1 = na_if(x1, 2))
# A tibble: 5 x 3
x1 x2 y1
<dbl> <dbl> <dbl>
1 1 5 1
2 2 4 NA
3 3 3 3
4 4 2 4
5 NA 1 NA