0

そのため、多くの欠損値を含むデータセットがあります。異なる欠損パターンのデータを分離したい。欠損値パターンを要約するのに非常に便利なパッケージ「マウス」を見つけました。ただし、特定の欠落パターンを持つ行を選択したい場合、選択された行の数は、欠落パターンのマトリックスが示すカウントよりもはるかに少なくなります。

私のコードは次のとおりです。

不足しているパターンを取得するには:

library(mice)
# md.pattern returns a matrix, I convert the matrix into a data frame with the first column as its frequency in the data frame 
pattern = md.pattern(data)
freq = dimnames(pattern)[[1]][-nrow(pattern)] 
pattern = data.frame(pattern[1:nrow(pattern)-1, 1:ncol(pattern)-1], row.names = NULL)
pattern$freq = freq
pattern = pattern[order(freq,decreasing = TRUE),]

ただし、欠落しているパターンを特定のパターンで手動でカウントしようとすると、pattern. カウントははるかに小さいです。

count = 0
for (i in 1:nrow(data)){
    # match the missingness by the entire row
    if (all(!is.na(data[i, names(data)[1:ncol(pattern)-1]]) == test[1,1:ncol(pattern)-1])){
        count = count +1
  }
}

誰かがどこがうまくいかないのか考えていますか? ありがとう!

データには多くの変数 (合計 107) と 70000 以上の観測値があります。nhanesこのコードは、miceパッケージ内のサンプル データでうまく機能します。しかし、私のデータファイルではうまくいきません。

例えば:

V1 V2 V3 V4 V5
1  NA  3  5  2
NA  3 23  2  9
NA  3 90  7  5
3   3  2 34 NA
3  NA  2  1  3
4  NA  7  3  1
4

1 に答える 1