2018年3月1日木曜日

PROC FORMAT入門5 : PICTUREステートメント



PICTUREステートメントで小数を扱う時に使用する「ROUNDオプション」の説明です。




* PICTUREフォーマットの定義 ;
proc format;
   picture TEST1_
      low - high = '009.00%'
   ;
   picture TEST2_ (round)
      low - high = '009.00%'
   ;
run;


・「ROUNDオプション」をつけると四捨五入してくれます(今回は書式を '009.00%' と定義したので、小数点以下第3位を四捨五入し、第2位まで表示するようにしています)

・「ROUNDオプション」をつけないと切り捨てになります(今回は書式を '009.00%' と定義したので、小数点以下第3位を切り捨てし、第2位まで表示するようにしています)





実際に適当なデータを作って、FORMAT変換後の結果を見てみましょう。

* Sample Data ;
data DT1;
   input X;
   cards;
12
12.34
12.345
;

* Format変換してみる ;
data DT2;
   set DT1;
   length Y1 Y2 $20.;
   Y1 = put(X,TEST1_.);
   Y2 = put(X,TEST2_.);
run;

 X  Y1  Y2 
12 
 12.00%  12.00% 
12.34 
 12.34%  12.34%
 12.345 
 12.34% 12.35%


ここまでそんなに難しくないですよね。
でも実は内部ではちょっと複雑な動きをしています。

とくにPICTUREステートメントで小数を扱う場合に、ちゃんと内部の動きを理解してないと想定外な結果になり痛い目を見ます(以下リンク参照)

(http://sas-boubi.blogspot.jp/2018/03/proc-formatpicture.html)






PROC FORMAT入門 : 記事一覧

10. その他の小ネタ

0 件のコメント:

コメントを投稿