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回登場していますが、複数条件を付ける際の「入れ子」方式と呼ぶそうです。この仕組みを理解するのも時間がかかりました…。説明は別の日に。
この記事が気に入ったらサポートをしてみませんか?