annotate macroの話です
毎度仕様を忘れて手こずるので書いときます
適宜追加するかもです
使うとき
%annomac;を宣言してあげます
これ書かないとマクロと認識してくれません
グラフとかに出力する場所の設定
%system(3,3,3);
*以降で指定する数字を百分率として扱います。画面を100%と見たときの割合で場所を指定できるようになります。
当然XとYに100を超える値を、これより下のannotate macroで指定したらERRORでます;
%system(2, 3, 3);
*以降で指定する数字は絶対値として扱います。グラフの軸の値に従って指定できるので便利です。;
グラフとかに文字を追加する
%label(6 , 98 , "hogehoge" , black, 0 , 0 , 3.0 , 'MS Mincho', 5 );
*%label(X,Y,"出力する文字列", 色 , 文字列の角度(0 - 360),文字の角度 , 文字size , font , position(1-9) );
20161118更新_間違ってました。以下の数字以外は今度追加します
/* positionについて
4 = 中央 (右)
5 = 中央 (真ん中) 標準値
6 = 中央 (左)
*/
201611118更新ここまで
グラフとかに線を追加する
%line( 1 , 30 , 1 , 28.5 , black , 1 , 0.15 );
*%line(始点x , 始点Y , 終点X , 終点Y , 色 ,線種 ,線の太さ);
線種はいろんな数字を指定できます。1が実線で、あとは点線の具合が変わります。
線種はそこそこ多くの指定ができます。なんなら二桁とかもいけます。
仕様を忘れる筆頭のREPORTプロシジャとGPLOTプロシジャについても上げたいですね
2016年9月29日木曜日
2016年9月16日金曜日
文字の日付をSAS日付値にする
これもずいぶん手垢のついたネタですが、先日引っかかったので投稿します。
要は2015-12-04T05:00のようなデータをSAS日付値にする話です。
data hoge;
AA = "2015-12-04T05:00";
HOGET=input(AA,e8601dt.);
run;
とするだけの話です。
引っかかったのは元の文字の日付をほかのデータセットから読み込む時に
文字の前後にブランクでも入っていたのでしょうか
inputを実行したら、ERRORが出て通らなかったのですね。
最後は読み込んだ文字変数にstripを使って前後のブランクを取り除いたことで(?)inputが通りました。
いまだにいまいち原因がわかっていないのですが、とりあえず通ったのでよしとしています。
文字変数に欠測データもいなかったので、errorが出ると思っていなくてびっくりしました。
20160927更新
SAS9.4で実行したらERRORなくいきました。
日付値に秒が入っていないことがERRORの原因ぽいです。
それにしてもstripかますと動くことの説明にはなりませんが・・・・
SAS9.4なら秒が日付値に入っていなくても滞りなく動くみたいです。
20170510更新
spritではなくcatsを使ってもinputが通りました。
相変わらずこれの原因、解決策がわかりません
要は2015-12-04T05:00のようなデータをSAS日付値にする話です。
data hoge;
AA = "2015-12-04T05:00";
HOGET=input(AA,e8601dt.);
run;
とするだけの話です。
引っかかったのは元の文字の日付をほかのデータセットから読み込む時に
文字の前後にブランクでも入っていたのでしょうか
inputを実行したら、ERRORが出て通らなかったのですね。
最後は読み込んだ文字変数にstripを使って前後のブランクを取り除いたことで(?)inputが通りました。
いまだにいまいち原因がわかっていないのですが、とりあえず通ったのでよしとしています。
文字変数に欠測データもいなかったので、errorが出ると思っていなくてびっくりしました。
20160927更新
SAS9.4で実行したらERRORなくいきました。
日付値に秒が入っていないことがERRORの原因ぽいです。
それにしてもstripかますと動くことの説明にはなりませんが・・・・
SAS9.4なら秒が日付値に入っていなくても滞りなく動くみたいです。
20170510更新
spritではなくcatsを使ってもinputが通りました。
相変わらずこれの原因、解決策がわかりません
登録:
投稿 (Atom)