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;
|
ここまでそんなに難しくないですよね。
でも実は内部ではちょっと複雑な動きをしています。
とくにPICTUREステートメントで小数を扱う場合に、ちゃんと内部の動きを理解してないと想定外な結果になり痛い目を見ます(以下リンク参照)
(http://sas-boubi.blogspot.jp/2018/03/proc-formatpicture.html)
2. 範囲の指定
3. INVALUEステートメント
4. PICTUREステートメント1
5. PICTUREステートメント2
6. PICTUREステートメント3
7. フォーマットカタログの保存
8. CNTLOUT=オプション
3. INVALUEステートメント
4. PICTUREステートメント1
5. PICTUREステートメント2
6. PICTUREステートメント3
7. フォーマットカタログの保存
8. CNTLOUT=オプション
0 件のコメント:
コメントを投稿