公的統計擬似ミクロデータのrへの読込み
DESCRIPTION
第3回Japan.R LT大会用 このデータの作成にあたっては、Rの乱数が使用されています。現在試行提供段階ですので、皆様のご意見ご感想や、活用事例などお寄せいただければ幸いです。擬似ミクロデータのデータと符合表の仕様は匿名データに準じています。TRANSCRIPT
公的統計擬似ミクロデータの
Rへの読込み
和田 かず美
本スライドは個人の発表用に作成したもので、必ずしも所属組織の見解などを示すものではありません。
2012.12.01 第3回Japan.R LT大会
最近の流行り物
ちょっと手を出してみたい。
でも苦労はしたくない!
猫も杓子も
大きすぎても困るんだ!!!
2
そんな貴方に
いかがですか?
メモリ2GBのVistaでも普通に読めました。
約3万2千レコード、197変数の
3
擬似ミクロデータとは?
• 統計調査の集計表から、乱数を用いて再現した擬似的な個別データ。
• (独)統計センターが平成16年全国消費実態調査について作成し、HP上で無償にて試行提供中(申出書の提出が必要です)。
• 利用要件– 申出者及び利用者以外の者に利用させないこと
– 集計表から擬似的に作成したデータであるので、分析結果は実証研究の結果と見なすことができないことを理解すること
– 利用者アンケートの提出4
平成16年全国消費実態調査
総務省統計局が5年毎に実施。
世帯を対象に、家計の収入・支出及び貯蓄・負債、耐久消費財、住宅・宅地などの家計資産を総合的に調査。
標本の大きさ
二人以上の世帯約5万5千、単身世帯約4千
疑似ミクロデータは二人以上の勤労者世帯データ約3万2千を収録。
調査の詳細は、http://www.stat.go.jp/data/zensho/2004/index.htm
5
http://www.nstac.go.jp
6
データ概要
7
本日はこの7つのzipファイルを使います
擬似ミクロデータ(パスワード解凍後)のファイル一覧
データレイアウトと符号表(Excelファイル) 8
データファイル(7分割のCSVファイル)
データファイルをエディタで表示すると こんな感じ
9
内容の解釈には、「符号表」との照合が必要
「擬似ミクロデータのRへの読込み」
-作業の流れ-
① コンスタント作成(Excel作業)
データレイアウト付属の符号表(Excelファイル)を加工して、 擬似ミクロデータを R に変数名を付加させながら読み込ませるための情報ファイル(コンスタント)を作成
② コンスタント読込み ( R 作業)
③ データファイル読込み( R 作業)
作業フォルダから複数あるデータファイルの名前を取得し、コンスタントを用いて、データファイルを連結させながら読み込む
10
カンマ区切りの固定長データ => Rへの読み込みに必要なのは「変数名」と、各変数が数量データであるかカテゴリデータであるかを示す「型」だけ。
何かの役に立つこともあるので、ここでは参照用に「行番号」と「階層」、表示用に「項目名」も残してみた。
紫色で囲んだ行(「変数名」のある行)
を利用
11
符号表をExcelで表示すると こんな感じ
- EXCELでの作業手順-1. ヘッダより上の部分を削除
2. 「変数名」でソート、ブランク行削除
3. 「型」でソート、ブランクを2に書き換え
4. 「行番号」順に再ソート
5. 必要のない列を削除
6. ヘッダを半角文字に(オプション)
7. CSVファイルとして保存[ここでは code.csv]
12
①コンスタント作成
1 : 数量データブランク: カテゴリデータ
Rに読み込むとブランクはNAに化けるので2に書き換える
型
ようやくR② コンスタント読込み
~ EXCELで作ったCSVファイルの最後にはよくゴミがある~
13
rm(list=ls(all=TRUE)) # 作業領域のお掃除♪setwd(“d:/giji/”) # カレントディレクトリの指定
cd1 <- read.csv("code.csv", header=TRUE)a1 <- which(!is.na(cd1$no)) # コンスタントファイル末尾のcd1 <- cd1[a1,] # ブランク行削除tail(cd1) # cd1の末尾確認
no koumoku lvl type namae192 517 土地家屋借金返済 4 1 Youto178193 519 他の借金返済 4 1 Youto179194 521 分割払・一括払購入借入金返済 4 1 Youto180195 523 財産購入 4 1 Youto181196 525 その他 4 1 Youto182197 527 繰越金 3 1 Youto183
# 因子属性への変換抑制フラグ作成
ft1 <- rep(TRUE, dim(cd1)[1]) ft1[which(cd1$type == 2)] <- FALSE
③データファイル読込み~分割ファイルがたくさんあっても怖くない~
ようやくR
14
# 命名規則を指定してデータファイル名の一覧を取得
(f.list <- list.files(path=getwd(), pattern="*).csv"))
[1] "GIJI_2004zensho_dataset(00001~05000).csv"[2] "GIJI_2004zensho_dataset(05001~10000).csv"[3] "GIJI_2004zensho_dataset(10001~15000).csv"[4] "GIJI_2004zensho_dataset(15001~20000).csv"[5] "GIJI_2004zensho_dataset(20001~25000).csv"[6] "GIJI_2004zensho_dataset(25001~30000).csv"[7] "GIJI_2004zensho_dataset(30001~32027).csv«
dt1 <- do.call(“rbind”, lapply(f.list, read.csv, col.names=cd1$namae, as.is=ft1, header=FALSE))
dim(dt1)[1] 32027 197
save(cd1, dt1, file=“giji.Rdata”)
# データレイアウト情報cd1とデータdt1を今後の利用のためgiji.Rdataとして保存
この先の分析は皆様でお楽しみください
擬似ミクロデータ利用上のご注意
• あくまで「擬似」データであるため、実証分析には擬似ミクロではなく匿名データをご利用ください。(ただし匿名データのご利用は学術研究・高等教育目的に限られています。)
• 今後のためにアンケートにご協力いただければ幸いです。
• 再配布はご容赦ください。
• 無償サービスにつき、申し訳ございませんが個別のサポートなどは行っておりません。
15