SASデータセットからユーザ定義フォーマットを作成する。
[OS]ALL
[リリース] 6.07, 6.08, 6.09, 6.10
[キーワード] base, format, procedure, cntlin=, option, datastep, start, label,
fmtname, type, dataset
[質問]SASデータセットとして作成してあるコード表から、ユーザ定義フォーマットを作れますか。
[回答]
SAS System 5では、FORMATプロシジャでVALUEステートメントを使ってユーザ定義フォーマットを作るしかありませんでした。
SASデータセット"SAMPLE" OBS AGE GRADE 1 6 小学1年生 2 7 小学2年生 3 8 小学3年生 4 9 小学4年生 5 10 小学5年生 6 11 小学6年生 7 12 中学1年生 . . .次のようなDATAステップでSAMPLEを加工して制御データセットを作成し、これを FORMATプロシジャのCNTLIN=オプションで指定します。 data formdat; set sample(rename=(age=start grade=label)); fmtname='agefmt'; type='n'; run; proc format cntlin=formdat; run; proc print data=sasuser.class; format age agefmt.; run;上記のPRINTプロシジャの実行結果は、次のようになります。 OBS NAME SEX AGE HEIGHT WEIGHT 1 Alice F 中学2年生 56.5 84.0 2 Becka F 中学2年生 65.3 98.0 3 Gail F 中学3年生 64.3 90.0 4 Karen F 中学1年生 56.3 77.0 5 Kathy F 中学1年生 59.8 84.5 6 Mary F 高校1年生 66.5 112.0 7 Sandy F 小学6年生 51.3 50.5 8 Sharon F 高校1年生 62.5 112.5 9 Tammy F 中学3年生 62.8 102.5 10 Alfred M 中学3年生 69.0 112.5 11 Duke M 中学3年生 63.5 102.5 12 Guido M 高校1年生 67.0 133.0 13 James M 中学1年生 57.3 83.0 14 Jeffrey M 中学2年生 62.5 84.0 15 John M 中学1年生 59.0 99.5 16 Philip M 高校2年生 72.0 150.0 17 Robert M 中学1年生 64.8 128.0 18 Thomas M 小学6年生 57.5 85.0 19 William M 高校1年生 66.5 112.0
|