Rでの欠損値処理
欠損値
RにはNAとNULLの2種類が存在するが、この2種類は異なる挙動を示します。
データで「-」「99」などによって空白が表現される。
NA
NA( not available )の略で、計測値不明を意味する。
NAはvectorの要素として使われる。
is.naでvectorの各要素が欠損しているかを確認できる。
R
z<-c(1,2,NA,8,3,NA,3)
z
[1] 1 2 NA 8 3 NA 3
is.na(z)
[1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE
#欠損(NA)を除く
z1<-na.omit(z)
z1
[1] 1 2 8 3 3
attr(,"na.action")
[1] 3 6
attr(,"class")
[1] "omit"
#zの平均値は計算できない
Error: unexpected input in "z\"
mean(z)
[1] NA
#na.rmがTRUEの場合、meanは欠落しているデータを削除してから、平均を計算する
mean(z, na.rm=TRUE)
[1] 3.4
#sum,min,max,var,sdでも同様
sum(z, na.rm=TRUE)
[1] 17
var(z, na.rm=TRUE)
[1] 7.3
sd(z, na.rm=TRUE)
[1] 2.701851
sd(z, na.rm=TRUE)**2
[1] 7.3
ちなみに、NAの平均値を計算できないのは、NAは計測値が不明であることを意味しているので、
-∞から∞の値をとる可能性があるので、
1 + NA → 1 とするのは妥当でないことがわかります。
欠損値をどうするかは統計分析的には非常に重要なテーマで、よく使われるのは多重代入法である
Rでは、mi,mice,Ameliaパッケージで実装されている
NULL
NULLとは何もないことを意味します。(ドイツ語のNullが語源?)
欠損とは厳密に異なり、何もない、空白であることをあらわします。
NAとNULLの重要な違いは、NULLはvectorの中に存在できません。
もしNULLをvectorに使用しても、消えてしまう。
R
z<-c(1,NULL,3)
z
[1] 1 3
d<- NULL
is.null(d)
[1] TRUE
is.null(7)
[1] FALSE
空白となった場合の、取り扱いは調査中です。。。
Author And Source
この問題について(Rでの欠損値処理), 我々は、より多くの情報をここで見つけました https://qiita.com/TIsh0321/items/516c6cd6d6f17025d62f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .