2016年12月13日火曜日

グラフにしたいデータセットの欠測値のところでグラフをつなげないようにする話

データに欠測が無かったら、以下を実行するとグラフが出ますね。
(いまどきgplotかよとの指摘は今はご勘弁を…)
data hoge;
    a = 1; Y = 2; output;
    a = 2; Y = 3; output;
    a = 3; Y = 4; output;
    a = 4; Y = 5; output;
    a = 5; Y = 3; output;
    a = 6; Y = 7; output;
    a = 7; Y = 5; output;
    a = 8; Y = 8; output;
    a = 9; Y = 4; output;
run;
proc gplot data = hoge;
    plot Y * A ;
    symbol1 c = black V = dot I = join;
run;


もしデータに欠測があった場合、普通にやるとそこは線でつながります。
data hoge;
    a = 1; Y = 2; output;
    a = 2; Y = 3; output;
    a = 3; Y = 4; output;
    a = 4; Y = 5; output;
    a = 5; Y = 3; output;
    a = 6; Y = .; output;
    a = 7; Y = 5; output;
    a = 8; Y = 8; output;
    a = 9; Y = 4; output;
run;
proc gplot data = hoge;
    plot Y * A ;
    symbol1 c = black V = dot I = join;
run;




欠測のところで線を区切って欲しいときは、skipmissオプションを指定します
data hoge;
    a = 1; Y = 2; output;
    a = 2; Y = 3; output;
    a = 3; Y = 4; output;
    a = 4; Y = 5; output;
    a = 5; Y = 3; output;
    a = 6; Y = .; output;
    a = 7; Y = 5; output;
    a = 8; Y = 8; output;
    a = 9; Y = 4; output;
run;
proc gplot data = hoge;
    plot Y * A /skipmiss;
    symbol1 c = black V = dot I = join;
run;






















2 件のコメント:

  1. どうもです。
    ちょうど最近、skipmissがぱっとでてこず、調べるの面倒でsgで描いたのでタイムリーでした。

    SGだとbreakですね。sgとgplotでキーワード変わりすぎなの勘弁して欲しいですね
    proc sgplot data = hoge;
    series y=Y x= A / break markers;
    run;

    返信削除
    返信
    1. キーワードが変わるせいか、いまだに会社のマクロはGPLOTですからね…勘弁してほしいところです。

      削除