見出し画像

Rで数字の欠損値を"NA"に変える方法

解析前の欠損値の処理…。簡単なようで意外と厄介です。

はじめから全てNAで統一されていればよいのですが、
データフレーム上、0、9、999などとなっている場合もあります。

これらが欠損値であると定義しないと、
解析結果が歪む可能性があります。

私が上手くいったやり方を紹介します。

1.9をNAにする例

data$変数名[data$変数名 %in% c(9)] <- NA

2.ifelseを使って0と9をNAにしてできた列を新たに追加する例

新しいdataframe名  <- 今使っているdataframe名 %>%  
mutate(新しい変数名 = ifelse(変換したい変数名 == 0 , NA_real_, ifelse(変換したい変数名 ==9, NA_real_, 変換したい変数名)))

ちなみに、新しく変数を作るのではなく、今使っているdataframe内の変数を変換したい場合には、1行目を、

「今使っているdataframe名 %>%  」

とするだけでできます。この場合、データフレームそのものが上書きされます。

余談ですが、ifelseが2回登場していますが、複数条件を付ける際の「入れ子」方式と呼ぶそうです。この仕組みを理解するのも時間がかかりました…。説明は別の日に。






この記事が気に入ったらサポートをしてみませんか?