No.22609 パネルデータの欠損値補完について  【羽島】 2018/09/04(Tue) 09:21

青木先生

羽島と申します,この度はお世話になります。

Rを使って以下のようなデータを分析しており,その中で住所コードの欠損値を補完する必要が出てきました。LOCFのような手法での補完では精度に不安があるため,個人IDを参照することで欠損値を補完したいのですが,どのようにプログラムを書けば良いでしょうか?

お忙しいところ大変恐縮ですが,ご教示頂けましたら幸いです。
個人ID  年   住所コード
100   2015    810
100   2016    NA
100   2017    810
201   2015    NA
201   2016    NA
201   2017    666

No.22610 Re: パネルデータの欠損値補完について  【青木繁伸】 2018/09/04(Tue) 13:03

あまり簡単なプログラムは書けないかな
d <- data.frame(ID = c(100, 100, 100, 201, 201, 201, 330, 330, 330),
year = c(2015, 2016, 1017, 2015, 2016, 2017, 2015, 2016, 2017),
code = c(810, NA, 810, NA, NA, 666, NA, 543, NA))
tbl <- unique(na.omit(d[c("ID", "code")]))
for (i in seq_len(nrow(d))) {
if (is.na(d$code[i])) {
d$code[i] = tbl[which(d$ID[i] == tbl[,1]), 2]
}
}
d

No.22611 Re: パネルデータの欠損値補完について  【羽島】 2018/09/04(Tue) 18:15

青木先生

お返事の方ありがとうございます。

元のデータは3万件ほどの個人データがあり手作業での修正を覚悟しておりましたが,
先生のお力で無事補完することが出来ました。

自身の勉強不足を恥じるばかりですが,この度は本当にありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る