【R】日付に対してifelse関数を使うとフォーマットが崩れる。

スポンサーリンク

Rで日付フォーマットをいじっていたらちょっとハマったので備忘録を残します。

日付のデータがあるとします。

x <- c("2014-11-11", "2014-11-11", NA, "2014-11-11")
x <- as.Date(x)
x
[1] "2014-11-11" "2014-11-11" NA           "2014-11-11"

このNAを他の日付に変更したい。
でもここでifelse関数を使うと、日付フォーマットが崩れます。

ifelse(is.na(x),"2014-12-1",x)
[1] "16385"     "16385"     "2014-12-1" "16385"

対処方法は[]を使って変更を試みること。

こういった変換はifelseよりも[]で変換したほうが良いみたいです。

x[is.na(x)] <- "2014-12-1"
x
[1] "2014-11-11" "2014-11-11" "2014-12-1"  "2014-11-11"

ifelse[]をもっと効率よく使いこなしていきたいですね。

参考

スポンサーリンク
スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です