×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
# データフレームの変数ごとに欠損値があるかどうか
sapply(dat, function(x) sum(is.na(x)))
# 特定の値を欠損値とする
dat[dat=="setosa"] <- NA
dat[dat==9999] <- NA # 数値もできる
# 変数を指定して欠損値とする。データ内に既に欠損値があるとエラーになる
dat[dat$Species=="virginica", "Species"] <- NA
# 欠損値の除去
# 関数内では大体na.rm=Tとする
mean(x, na.rm=T)
# データフレームから行 (ケース) ごと除去
na.omit(dat)
Amelia II, Mice, mitools といったパッケージがあるらしい
# おまけ
dat2 <- dat
for(i in 1:ncol(dat)){
dat2[,i] <- replace(dat[,i], which(dat[,i]==0), NA)
}
PR
Comment
1
無題
以下の方法ありました
> dd <- data.frame(a=c(1,2,0,4), b=c(0,2,3,4))
> dd
a b
1 1 0
2 2 2
3 0 3
4 4 4
> class(dd)
[1] "data.frame"
> dd2 <- dd
> dd2[] <- lapply(dd2,function(x) replace(x,x==0,NA))
> dd2
a b
1 1 NA
2 2 2
3 NA 3
4 4 4
> dd3 <- dd2
> dd3[] <- lapply(dd3, function(x) replace(x, is.na(x), 999))
> dd3
a b
1 1 999
2 2 2
3 999 3
4 4 4
>
http://tolstoy.newcastle.edu.au/R/help/03a/0313.html
> dd <- data.frame(a=c(1,2,0,4), b=c(0,2,3,4))
> dd
a b
1 1 0
2 2 2
3 0 3
4 4 4
> class(dd)
[1] "data.frame"
> dd2 <- dd
> dd2[] <- lapply(dd2,function(x) replace(x,x==0,NA))
> dd2
a b
1 1 NA
2 2 2
3 NA 3
4 4 4
> dd3 <- dd2
> dd3[] <- lapply(dd3, function(x) replace(x, is.na(x), 999))
> dd3
a b
1 1 999
2 2 2
3 999 3
4 4 4
>
http://tolstoy.newcastle.edu.au/R/help/03a/0313.html
Trackback
Trackback URL
Comment form