「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

教育用擬似ミクロデータの符号表から
SAS データセット用の変数ラベルと変数フォーマットを自動作成する SAS プログラム（公財）統計情報研究開発センター

周防 節雄

要旨
日本の政府機関が作成したミクロデータには、メタ情報として「符号表」が付随している。この符号表は、政府機関共通の「政府統計個票データレイアウト標準記法」(平成 18 年)に準拠して作成されており、エクセルファイルでネットからもアクセス・保存が出来る。そこには、変数名、変数の長さ、ラベル、変数コード値とその内容等が階層構造で表現されている。本報告
では、統計センター提供の全国消費実態調査から作成された教育用擬似ミクロデータを SAS データセットに取り込んだ後、符号表から SAS 変数ラベルと変数フォーマットを自動生成し、かつ、SAS 変数も自動的に rename する SAS プログラムについて解説する。なお、この手法は他の政府統計のミクロデータにも応用できる。

1． はじめに
近年、パソコンの性能の飛躍的な向上のおかげで、一昔前ならメインフレームコンピュータを駆使しないとできなかった大容量の公的ミクロデータの分析処理が大学の研究室内で可能となった。こうしたミクロデータの「分析」手法は相当進んできているが、その元データをデータベースに編成して研究者が便利に利用できるようにする試みはあまり見られない。現状では、個々の研究者がそれぞれその都度苦労してデータベースを構築しているのが現実である。
公的ミクロデータの提供を受けると、ミクロデータ本体の他に、メタ情報として「符号表」が付随してくる。この符号表は、政府機関共通の「政府統計個票データレイアウト標準記法」(平成 18 年)に準拠して作成されており、エクセルファイルでネットからもアクセス・保存が出来る。そこには、変数名、変数の長さ、ラベル、変数コード値とその内容等が階層構造で表現されている。通常、公的ミクロデータ本体
は、固定長でカラム指定のテキストファイルか、コンマ区切りの CSV ファイルで提供される。各利用者
は、符号表を参照しながらミクロデータ本体を解釈して、必要な変数を取り出し分析処理に利用している。こうした処理は、変数の数やデータ件数が少ない場合はそれほど煩雑ではないが、統計法第 33 条に基づく調査票情報の提供(旧統計法の「目的外使用」に相当)で入手した公的ミクロデータや匿名データでは、変数の数やデータ件数が膨大になり、通常の手作業ではかなり手間と時間がかかり、仮にできたとしても、作業過程での手違いの可能性もあり得る。更に、一回分の調査データだけでなく、数回分のミクロ
データを利用する場合にはかなりの作業量になる。
著者自身の経験から、このデータベース編成の作業過程をシステム化することで、分析処理に供するデータベースの信頼性を高めたいと長年考えてきた。ミクロデータ提供時に入手する符号表のデザインはかなり精査されており、これを入力データとして利用して、提供されたオリジナルのミクロデータ本体を読み込むプログラムを作成して、データベースに編成する試みをここ数年行ってきた。この手法を使って、現在、匿名データや調査票情報の提供で入手した公的ミクロデータのデータベース編成も行なった結果、これまでの煩雑な作業の機械化に成功した。本報告では、全国消費実態調査から作成された教育用擬似ミクロデータをとりあげて、その手法の紹介をする。本論文で使用する擬似ミクロデータ(平成 16
年全国消費実態調査に基づく)は、(独立行政法人)統計センターに利用申請をすれば、誰でも無料で提供されるので、本システムのプログラムを実際に使って試用することができる。
2． 擬似ミクロデータの概要
以下に擬似ミクロデータの本体の最初のレコード(図１)と符号表(図 2)を示す。
1

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日
1,2,1,1,2,1,1,2,1,1,3,VV,1,18.9,2873.0301,370456.9355,215046.9113,211011.1511,194775.9545,0,0,0,0,0,0,16235.19656,0,16235.19656,16235.19656,0,0,4035.76027,2419.53341,1616.22786,131041.8992,1234
32.386,0,0,0,0,0,0,0,0,7609.51313,0,0,24358.12501,370446.9355,138544.4475,110290.0792,37941.54346,3686.76725,902.97426,1535.22605,1060.4607,188.13624,1465.15969,922.4658,205.95685,206.53744,130.19959,2125.90599,1859.22454,266.68145,1244.73895,566.30396,506.90943,171.52556,4650.22894,3096.20692,494.02047,599.28045,460.7211,1175.32196,1114.01883,61.30313,1570.67274,178.64251,1392.03022,2118.83267,3120.73433,1439.03168,1681.70265,1345.57649,414.59796,175.91771,755.06082,526.83885,14910.7656,14910.7656,0,0,0,0,0,0,19694.34402,14166.65895,742.04843,776.55246,4009.08507,4556.983
15,1603.30798,1010.95282,0,592.35517,946.43806,278.49531,846.7985,881.94329,0,2742.17449,0,1833.1206,129.40788,358.35029,1345.36642,315.17477,35.9687,279.20607,0,188.07758,23.81711,118.22933,46.03114,164.16139,187.91704,53.7231,0,11271.73799,1188.87066,0,1431.93401,8650.93332,17052.56238,271.55017,6410.20706,0,0,6410.20706,10370.80515,0,0,0,0,13576.75265,8720.8525,2376.48222,1816.510
95,662.89798,0,0,0,662.89798,3453.98017,802.08152,125.19983,255.80339,41.22403,77.74321,302.11106,928.88116,1723.01749,291.84992,0,0,14.67644,0,1383.33634,33.15478,0,28254.36828,5988.87187,3832.80497,2156.06689,0,20332.05666,11770.9816,7346.69939,0,1214.37568,1933.43975,210312.4478,182574.4127,1530.37051,0,1570.37051,0,0,0,16766.34204,0,8316.88743,0,1084.43513,21590.04022

図 1 擬似ミクロデータの最初のレコード(但し、例示目的なので一部の値は変更済み)

政府統計コード
00200564

実施時期 平成１６年
集計区分 ２人以上勤労世帯
調査票名 擬似ミクロデータ（ 大規模データ） (備考・ 補足事項)
コード体系 Sh ift_JIS「 △」 はブランク（ 空白） を示す。
レコード長 2 9 7 4

統計調査名 全国消費実態調査

行番号

項目名

階 位
層 置

作成日
ファイル名

1

1

1

1
1
2
2
2

2

1

3
5
6

2
1
2

2
2
3

8
9

512 有価証券購入
513 株式購入
514 ,
515 他の有価証券購入
516 ,517 土地家屋借金返済
518 ,519 他の借金返済
520 ,521 分割払・一括払購入借入金返済
522 ,523 財産購入
524 ,
525 その他
526 ,527 繰越金

45 28485 2863
5 2864
5 28794 28804 2895
4 2896
4 2911
4 2912
4 2927
4 29284 2943
4 2944
4 29593 2960

Se taiKu bu n

2

1

2

1

###

(照会先等)

バ
イ 配
種
型
ト 置
別 変数名
数

1 世帯区分
2
3
4 ,
5 世帯票
6 世帯人員7 ,8 有業人員910 ,
1 1 現住居等に関する事項
1 2 住居の構造
13
14
15
16
17 ,
1 8 住居の建て方
19
20
21
22
23
24
25
26 ,
2 7 住居の所有関係
28
29
30
31
32
33
34
35
36
37 ,
3 8 世帯員に関する事項
3 9 世帯主4 0 性別41# # # # # # # 訂正日

符号
1
2
3
,

Se taiJin in

符号内容
勤労
勤労以外
無職
項目の区切り1△2 ～,Sh u u gyou Jin in △1 ～
VV
,

２人～
項目の区切り１人～
不詳
項目の区切り1

Kou zou

木造
防火木造
鉄骨・ 鉄筋コンクリート造

3
3

10
11

1
1

Tate kata

3
3

12
13

1
1

Sh oyu u

2
2
3
4

14

1

15

1

1
2
3
4
V
,
1
2
3
4
5
6
7
V
,
1
2
3
4
5
6
7
8
9
V
,

その他（ブロック造り、レンガ造りなど）不詳
項目の区切り一戸建
長屋建
共同住宅（ １・ ２階建）
共同住宅（ ３～５階建）
共同住宅（ ６～１０階建）
共同住宅（ １１階建以上）
その他
不詳
項目の区切り持ち家（ 世帯員名義）
持ち家（ その他名義）
民営賃貸住宅（ 設備専用）
民営賃貸住宅（ 設備共用）
県市区町村営賃貸住宅
都市再生機構・ 公社等賃貸住宅
社宅・ 公務員住宅（ 借上げ含む）
借間
寮・ 寄宿舎不詳
項目の区切りS1 _Se x12△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円,
項目の区切り△△△△△△△△0.00000～
円

男
女

中略
15
1
15
1
15
1
15
1
15
1
15
1
15
1
15

2

1

Youto176

2

1

Youto177

2

1

Youto178

2

1

Youto179

2

1

Youto180

2

1

Youto181

2

1

Youto182

2

1

Youto183

図 2 擬似ミクロデータ用符号表2

備
考

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

統計センターのホームページに
図３に示すミクロデータの概要がある。本論文では「大規模データ」を使用しており、197 項目から成る 32027 レコードのファイルが CSV 形式のテキス
トファイルで 7 つのファイルに分割されている。
以下で解説する SAS プログ
ラムは、この 7 つの CSV ファ
イルと図 2 のエクセルファイル
を入力データとしている。
図３ 擬似ミクロデータ概要(統計センターのホームページから転載)

3． システムの概要
3.1

SAS データセット作成プログラムの特徴(1) エンドユーザのパソコン環境に合わせて、提供されたミクロデータの元ファイルが保存されているフォルダのパスを設定するだけで利用できる。ファイル名を指定する必要はない。従って、多数の元ファイルがある場合には、便利である。
(2) 全ての変数を一旦「文字型」変数 X1、X2、･･･、X197 として取り込んだ後、数値型に変換する。
これは、半角アルファベットの「V」と「VV」がコード値として使用されていることの対策である。
(3) 変数 X1～X197 を、「符号表」にある変数名にすべて自動的に rename して、SAS データセットを作成する。
（ただし、図 2 でで囲った変数 Youto001～Youto183 は Y1～Y183 に rename した。
）(4) 符号表にある日本語表記の「項目名」を使って全ての変数に変数ラベルを自動設定する。その結果、データ分析の段階で出力する図表に、変数名ではなくて変数ラベルで表示できるようになる。
(5) コード値で表現されている変数を使って図表を出力する際、コード値ではなくて日本語表記ができるように、図２の符号表にある「変数名」、｢符号｣、｢符号内容｣を使って、SAS フォーマットの作成を自動的に行う。フォーマット名としては、変数名の末尾に「X」を付した(付録プログラム⑤参照)。
こうすることでフォーマットを使用する際にフォーマット名を確認する手間が省ける。また、国勢調査のミクロデータのように、符号表にある変数名の中には、数字で終わる変数名があり、そのままではフォーマット名としては使えない場合でも、この命名法であれば問題はない。
3.2

プログラムの構造と機能

本システムは次の 4 つの SAS プログラムから成り、末尾の付録プログラム①～④に収録している。
① read_giji_zensho(all_at_once).sas② giji_zensho_codetable_import.sas③ label_rename.sas④ create_format.sas

3

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

これらのプログラムの相互関係は図 4 に示す。この①から④までをこの順番で実行すれば、複数のCSV ファイルで提供された擬似ミクロデータを SAS データセットとして保存できる。このデータセッ
トの変数は、符号表にある「変数名」で命名されており、かつ、符号表にある「項目名」を使って変数ラベルが定義されている。更に、符号表の「符号」と「符号内容」を使って、変数フォーマットを定義
する SAS プログラム⑤(本稿末尾に収録)が自動作成される。

プログラム①
ミクロデータCSV ファイル

プログラム②
符号表エクセルファイル(1) レイアウト(2) 符号表

proc import
全項目名→変数 F1～F11
プログラム④
パーマネントSAS データセット
zensho(文字変数 X1～X197)

SAS データセット
code_table

コード値の変換
V → 999
VV → 999｢半角ブランク｣↓｢半角ピリオド｣

パーマネント SAS
データセットzensho(数値変数 F1～F197)

符号表にある
変数名、符号、符号内容を使って、変数 format を作成

プログラム③
data ステップ
rename 文
作成

label 文作成

%include 文で、上のlabel 文 と rename 文を使って, F1～F197 の(1) Rename(2) ラベル作成

パーマネント SAS
データセット zensho(全変数 rename 済)(全変数ラベル付き)

図 4 プログラムの構造
4プログラム⑤

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

3.3

本システムの利用方法

本システムを使用する際の留意点が2 つある。
一つ目は、図 2 の符号表の「行番
号」
、
「項目名」
・・・の行から上の行を全て削除しておくことである。その際、オリジナルのエクセルシートの複製のシートを作って、そのシート上で削除して使用することを勧める。
二つ目としては、統計センター提供の擬似ミクロデータと符号表を保存しG:\全消\全消擬似ミクロデータ\ ミクロデータcsv
GIJI_2004zensho_dataset(00001～05000).csv
GIJI_2004zensho_dataset(05001～10000).csv
GIJI_2004zensho_dataset(10001～15000).csv
GIJI_2004zensho_dataset(15001～20000).csv
GIJI_2004zensho_dataset(20001～25000).csv
GIJI_2004zensho_dataset(25001～30000).csv
GIJI_2004zensho_dataset(30001～32027).csv\ zensho_parmanent←自動作成される
zensho.sas7bdat←自動作成される
code_table.sas7bdat←符号表\ 統計センター_layout_code(鍵なし).xlsx\ 統数研研究会用programているドライブ名やフォルダ名の設定が必要になる。そのために、プログラ
ム①と②の冒頭部にある%let 文を使って SAS マクロ変数をそれぞれ 5 つと、

read_giji_zensho(all_at_once).sas
giji_zensho_codetable_import.sas
label_rename.sas
create_format.sas←プログラム①

giji_micro_format.sas←自動作成される←プログラム②←プログラム③←プログラム④

図５ 筆者の利用環境

2 つ指定しなければならない。
本稿の末尾の付録に示した SAS プログラムは、著者が利用しているパソコン環境の設定なので、エンドユーザは各自の環境に合わせた設定が必要になる。ちなみに、著者の環境は図５に示す通りである。白抜き文字のファイルは本システムを実行すれば、自動作成される。
以上のマクロ変数の設定をした後に、プログラム①から④までを順番に実行すれば良い。その結果、
擬似ミクロデータは zensho という名前のパーマネント SAS データセットとして作成され、かつ、変数
フォーマットを定義する SAS プログラム「giji_micro_format.sas」(付録プログラム⑤)も作成される。
ここで解説した全ての SAS プログラムは以下の URL から無料でダウンロードできる。プログラムの実行に当たっては、エンドユーザは、各自で擬似ミクロデータと符号表を入手されたい。
http://mighty.gk.u-hyogo.ac.jp/confidential/giji_micro_SAS_program.zip
なお、プログラム①と②で必要なマクロ変数を設定した後であれば、右のプログラム「だけ」を実行しても、プログラム①から④までが順番に自動的に実行されて、同じ結果が得られる。ただし、このプログラムの冒頭部で、プログラム①から④までが保存されているフォルダのパスの設定が必要となる。図５を参考にされたい。なお、このプルグラムはどこに保存して/* create_SAS_dataset.sas */*このプログラムを実行すれば、ミクロデータ本体がSASデータセットに取り込まれ、かつ、符号表にある変数名と変数ラベルがセットされる。;*★ 以下の①～④のSASプログラムが保存されているパスを指定して下さい;%let program_path=G:\全消\全消擬似ミクロデータ\統数研研究会用program;*① ミクロデータ本体をSASデータセットに取り込む;%include "&program_path\read_giji_zensho(all_at_once).sas";*② 符号表をSASデータセットに変換;%include "&program_path\giji_zensho_codetable_import.sas";*③ 教育用擬似ミクロデータの変数ラベル作成と変数のrename;%include "&program_path\label_rename.sas";*④ proc formatを作成する;%include "&program_path\create_format.sas";

いても正常に作動する。
一括実行するプログラム
5

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

4．まとめ
本稿では、教育用擬似ミクロデータを SAS データセットに取り込む SAS プログラムを解説したが、ここで使用した手法は、匿名データやもっと膨大なミクロデータの調査票情報の利用(例えば、国勢調査のミクロデータ)にも応用できる。符号表のスタイルは、政府機関共通の「政府統計個票データレイア
ウト標準記法」(平成 18 年)に準拠して作成されているが、細部は統計調査が異なれば多様な形式が採用されているので、完全な汎用プログラムの開発は今の段階ではできない。例えば、筆者は現在、全国消費実態調査の 1994 年、1999 年、2004 年の匿名データを利用しているが、その符号表には変数名がないので、本稿で紹介したプログラムはそのままでは使えない。ただし、一部修正するだけで、SAS データ
セットを作成したり、変数ラベルや変数フォーマットを簡単に自動設定することはできる。数年前に利用した国勢調査のミクロデータの場合、符号表には変数名があり、今回とほぼ同じ手法で SAS データセ
ットに編成することができた。規模の大きいミクロデータで、しかも複数の回次のデータを扱う場合は、大幅な作業の軽減をはかることができる。

謝辞
擬似ミクロデータを提供して頂いた(独立行政法人)統計センターに対し、厚く御礼申し上げます。
参考文献
周防節雄(2014) 政府統計ミクロデータの符号表から SAS 変数のラベルとフォーマットを自動生成する SAS プログラムの作成方法、『SAS ユーザ総会 2014 論文集』
、pp831-844

付録 SAS プログラム①/* ① read_giji_zensho(all_at_once).sas */ options nocenter macrogen;*以下の５つのマクロ変数を指定してください。;%let path=G:\全消\全消擬似ミクロデータ; *「全消擬似ミクロデータ・プロジェクト」用path名;%let ds_folder=zensho_permanent;*パーマネントSASデータセット用フォルダ名;%let csvFolder=ミクロデータcsv; *教育用擬似ミクロデータのCSVファイルが保存されるフォルダ名;%let dsname=zensho;*ミクロデータから作成されるパーマネントSASデータセット名;%let SurveyName=全国消費実態調査：教育用擬似ミクロデータ; *調査名:結果の表示時に使用される;
libname zensho "&path\&ds_folder";*全国消費実態調査:擬似ミクロデータの全てのCSVファイル名の指定(ワイルドカード使用);
filename FL "&path\&csvFolder\*.csv";
data zensho.&dsname;length X1-X197 $15; *全ての変数を一旦文字型変数として取り込む;
infile FL dsd LRECL=32767;
input X1-X197;
run;proc print data=zensho.&dsname (obs=25); title "①-1 &SurveyName (先頭10件)"; run;data zensho.&dsname; set; drop i X1-X197; *文字型変数を数値型変数に変換;
array X {197}; *文字型変数;
do i=1 to 13; if index(X[i},"V") then X[i}="." ; *数値型の欠損値(不詳);
if X[i}=" "then X[i}="999"; *数値型のコード(非･･);
end;array F {197} 8; *数値変数;
do i=1 to 197; F{i}=X{i}; end; *文字型変数を数値型変数に変換;
run;proc print data=zensho.&dsname (obs=25); title "①-2 &SurveyName (先頭10件)"; run;

6

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

文字型変数

結
果
ビ
ュ
ー
ア
画
面

数値型変数

付録 SAS プログラム②/* ② giji_zensho_codetable_import.sas */ *符号表をSASデータセットに変換;%let Codetable=統計センター_layout_code(鍵なし).xlsx; *符号表のファイル名;%let sheet=SAS変数名なし;*符号表ファイルのシート名;
proc import out=zensho.code_tabledatafile="&path\&CodeTable" dbms=excel replace; getnames=no; sheet="&sheet";run;data zensho.code_table; *項目名に対応する変数名にrenameする;
set;
rename F1=lineNO
F2=Vlabel
F3=strata
F4=position
F5=bytes
F6=xhaichi
F7=Vtype
F8=xshubetsu
F9=variable
F10=Vcode
F11=VcodeContents;
run;proc print data=zensho.code_table; title "② &SurveyName.符号表"; run;

7

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

付録 SAS プログラム③/* ③ label_rename.sas */ *教育用擬似ミクロデータの変数ラベル作成と変数のrename;filename out1 "&path\label.txt"; *変数ラベル定義用テキスト;
filename out2 "&path\rename.txt"; *変数F1～F197のrename用テキスト;* 全ての変数に変数ラベルを付すためのLABEL文の中味を外部ファイルに出力;
data label_define; keep var_label variable Vlabel;file out1; *LABEL文の中味を外部ファイルに出力;
length var_label $ 100;
set zensho.code_table; if variable=" " then delete;*「Y」で始まる変数名を後で全て「Y」で始まる変数名(★数値型★)に置換するためのrename文用変数名の作成;
variable=tranwrd(variable,"Youto00","Y");variable=tranwrd(variable,"Youto0", "Y");variable=tranwrd(variable,"Youto", "Y");var_label=compress(variable) || '="' || compress(Vlabel || '"');
put var_label; *最終的に作成された全ての変数に付与するラベル文の作成;
run;proc print; title "③-1 label"; var var_label variable Vlabel; run;data _null_;
file out2;*変数F1～F197を「符号表」の変数名に変えるrename文の中味をテキストファイルに出力;
set label_define;statement=compress("F" || _N_ || "=" || variable);put statement;run;data zensho.&dsname; *変数F1～F197をrenameをする;
set zensho.&dsname;rename 文
rename%include "&path\rename.txt"; ;run;proc print data=zensho.&dsname(obs=5); title "③-2 変数F1～F197のrename: (先頭5件)"; run;data zensho.&dsname; *全ての変数にラベルを付ける; set; label %include "&path\label.txt"; ; run;
*ミクロデータのパーマネントデータセット完成;
label 文proc print data=zensho.&dsname(obs=5);
title "③-4 &SurveyName. パーマネントSASデータセット(先頭5件:変数名表示)"; run;proc print data=zensho.&dsname(obs=5) label;title "③-5 &SurveyName. パーマネントSASデータセット(先頭5件:変数ラベル表示)"; run;label.txt

SetaiKubun="世帯区分"
SetaiJinin="世帯人員"
ShuugyouJinin="有業人員"
Kouzou="住居の構造"
Tatekata="住居の建て方"
Shoyuu="住居の所有関係"
S1_Sex="性別"S1_Age="年齢5歳階級"
S1_Shuugyou="就業・非就業の別"
S1_KigyouKubun="企業区分"
S1_KigyouKibo="企業規模"
S1_Sangyou="産業符号"
S1_Shokugyou="職業符号"
Weight="集計用乗率"
Y1="年間収入"
Y2="収入総額"
Y3="実収入"
Y4="経常収入"

rename.txt

F1=SetaiKubun
F2=SetaiJinin
F3=ShuugyouJinin
F4=Kouzou
F5=Tatekata
F6=Shoyuu
F7=S1_Sex
F8=S1_Age
F9=S1_Shuugyou
F10=S1_KigyouKubun
F11=S1_KigyouKibo
F12=S1_Sangyou
F13=S1_Shokugyou
F14=Weight
F15=Y1
F16=Y2
F17=Y3
F18=Y4

以下省略

以下省略

8

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

結果ビューア画面

以下省略
9

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

rename 後

変数ラベル付与後 (label 指定なし)

変数ラベル付与後 (label 指定あり)

変数ラベルと変数フォーマットの使用例（この結果を出力したテストプログラムは本稿の末尾にある。）

10

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

付録 SAS プログラム④/* ④ create_format.sas */ *ミクロデータ用のproc format作成;
filename out3 "&program_path\giji_micro_format.sas";
data format; keep formatName Vcode VcodeContents;
set zensho.code_table; *符号表のデータセットを使用;
retain sw formatName;
if Vlabel="," then sw=0;
if variable NE " " AND Vtype=" " /*文字型変数*/
then do; sw=1; formatName=variable; output; return; end;
if sw=1 then output;
run;proc print; title "④-1 format対象変数(1)"; var formatName Vcode VcodeContents; run;*★====== dataset 'format'に対して、「V」と「△」の処理を追加する======★;
data format; set format;
if index(Vcode,"V") > 0 then Vcode=".";
if (formatName="S1_KigyouKibo" OR formatName="S1_KigyouKubun") AND Vcode="△"then Vcode="999";
else Vcode=kcompress(Vcode,"△");
run;proc print; title "④-2 V converted to period"; run;*★====== dataset 'format'に対する「V」と「△」の追加処理終了==========★;
proc sort data=format out=format1; by formatName; run;data format1; set format1; by formatName;if first.formatName then statement2='value ' || compress(formatName || 'X' );statement=compress(Vcode || '="' || VcodeContents || '"');
run;proc print;
title "④-3 format対象変数(2)";var formatName Vcode VcodeContents statement statement2;
run;data _null_; file out3;
set format1 end=final; by formatName;
if _n_=1 then put "proc format; *&SurveyName;";if first.formatName then put statement2;
if last.formatName then put "" statement ";" /;else put "" statement;
if final then put "run;";
run;

11

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

結果ビューア画面

12

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

13

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

14

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

15

「公的統計のミクロデータ等を用いた研究の新展開」研究集会
＠統計数理研究所 2014 年 11 月 21 日

付録 プログラム⑤ 自動作成された SAS フォーマット
(giji_micro_format.sas)
proc format; *全国消費実態調査：教育用擬似ミクロデータ;
value KouzouXvalue S1_SangyouX
1="木造"
1="農業"
2="防火木造"
2="林業"
3="鉄骨・鉄筋コンクリート造"
3="漁業"
4="その他（ブロック造り、レンガ造りなど）"
4="鉱業".="不詳" ;5="建設業"
6="製造業"
value S1_AgeX
7="電気・ガス・熱供給・水道業"
1="２４歳未満"
8="情報通信業"
2="２５～２９歳"
9="運輸業"
3="３０～３４歳"
10="卸売・小売業"
4="３５～３９歳"
11="金融・保険業"
5="４０～４４歳"
12="不動産業"
6="４５～４９歳"
13="飲食店・宿泊業"
7="５０～５４歳"
14="医療・福祉"
8="５５～５９歳"
15="教育・学習支援業"
9="６０～６４歳"
16="複合サービス事業"
10="６５～６９歳"
17="サービス業（他に分類されないもの）"
11="７０～７４歳"
18="公務（他に分類されないもの）"
12="７５歳以上"
19="その他（非就業を含む）".="不詳" ;.="不詳" ;value S1_KigyouKiboX
1="１～４人"
2="５～２９人"
3="３０～４９９人"
4="５００～９９９人"
5="１０００人以上"
999="非就業又は官公".="不詳" ;value S1_KigyouKubunX
1="民営"
2="自営"
3="官公"
999="非就業".="不詳" ;value S1_SexX
1="男"2="女" ;
value S1_ShokugyouX
1="常用労務作業者"
2="臨時及び日々雇労務作業者"
3="民間職員"
4="官公職員１"
5="官公職員２"
6="商人及び職人"
7="個人経営者"
8="農林漁業従事者"
9="法人経営者"
10="自由業者"
11="その他"
12="無職".="不詳" ;value S1_ShuugyouX
1="就業"
2=" うちパート"
3="非就業"
4=" うち仕事を探している".="不詳" ;value SetaiKubunX
1="勤労"
2="勤労以外"
3="無職" ;value ShoyuuX
1="持ち家（世帯員名義）"
2="持ち家（その他名義）"
3="民営賃貸住宅（設備専用）"
4="民営賃貸住宅（設備共用）"
5="県市区町村営賃貸住宅"
6="都市再生機構・公社等賃貸住宅"
7="社宅・公務員住宅（借上げ含む）"
8="借間"
9="寮・寄宿舎".="不詳" ;value TatekataX
1="一戸建"2="長屋建"3="共同住宅（１・２階建）"
4="共同住宅（３～５階建）"
5="共同住宅（６～１０階建）"
6="共同住宅（１１階建以上）"
7="その他".="不詳" ;run;

変数ラベルと変数フォーマットの使用例（このプログラムの出力結果は、付録プログラム③の後ろにある。
）/* test_format.sas */ options nocenter;%let path=G:\全消\全消擬似ミクロデータ; *「全消擬似ミクロデータ・プロジェクト」用path名;%let ds_folder=zensho_permanent; *教育用擬似ミクロデータのCSVファイルが保存されるフォルダ名;%let SurveyName=全国消費実態調査：教育用擬似ミクロデータ; *調査名:結果の表示時に使用される;
libname zensho "&path\&ds_folder";title "&SurveyName ";proc freq data=zensho.zensho; tables kouzou / missing; format kouzou kouzouX.; run;proc freq data=zensho.zensho; tables S1_KigyouKibo / missing;format S1_KigyouKibo S1_KigyouKiboX.; run;proc freq data=zensho.zensho;
tables kouzou*S1_KigyouKibo / norow nocol nopercent missing;format kouzou kouzouX.;
format S1_KigyouKibo S1_KigyouKiboX.;
run;

16