以下のように、「PUT関数」を使って文字変換することってよくありますよね。
*** サンプルデータ *******************;
data DT1;
format V1 yymmdd10. ; V1 = '01jan2000'd; output; V1 = '05feb2001'd; output; V1 = .; output; run; |
*** PUT関数を使って文字化 ***********; data DT2; length V1 8. V2 $20.; set DT1; V2 = put(V1,yymmdd10.) ; run; |
V2 = VVALUE(V1) ; |
「VVALUE関数」は「変数に割り当てられているFORMAT」を使って文字変換してくれる関数です。
注意点
PUT関数と挙動が似ています。
例えば、PUT関数で数値の欠損値を以下のようにFORMAT変換すると、、
length V3 $20.; V3 = put( . , yymmdd10.); |
→ 変換後の値は「 .」という感じで先頭に余計な空白が入ります。
また、フォーマットによっては、、
length V4 $20.; V4 = put( 10, best12. ); |
→ 変換後の値は「 10」という感じでこちらも先頭に余計な空白が入る場合があります。
VVALUE関数も同様に先頭に空白が入る場合があるのでご注意下さい。
0 件のコメント:
コメントを投稿