|
|
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
|
|||||