グラフ入門(パラメータごとに分ける)

スポンサーリンク

通常のデータ構造であれば1つのID(人物等)の身長や体重などのデータは同じ行の別の列に格納され(横持ち)、1つのIDにつき1レコードとなります。
しかし設計によっては1つのIDで、身長で1レコード、体重で別に1レコードとなる構造(縦持ち)も当たり前のように存在します。
そんなケースで必要なレコードを抽出してグラフを描く方法です。


データ作成
data test;
  input name $ value param $;
  datalines;
佐藤 160 height
佐藤 60 weight
佐藤 20 age
田中 170 height
田中 70 weight
田中 30 age
鈴木 180 height
鈴木 80 weight
鈴木 40 age
;
run;

縦持ちのデータ構造。

コード
%macro graph(val=);
  proc sgplot data = test(where = (param = &val));
    vbar name / response = value;
  run;
%mend;

%graph(val="height");
%graph(val="weight");
%graph(val="age");

パラメータ固定でグラフを描く部分を作成 → マクロ化し、
パラメータを指定して呼び出しています。

結果

マクロを呼び出すごとにグラフが1つ作成されます。

コメント