以下のプログラムを実行すると、、
data DT1; length VAR1 $20.; VAR1 = put(1, 20.); run; |
「 1」みたいな感じで先頭に余計な半角スペースが入ってしまう。
左詰めにするため「left関数」を使う以外に、
VAR1 = put(1, 20. -L); |
と書くこともできてしまう。
ちなみに
「-L」が左詰め
「-C」が中央
「-R」が右詰め
|
って意味になる。
使うときの注意
① VAR1 = put(1, 8.2 -L); * OK ;
② VAR1 = put(1, 8.2 -L) || "mg"; * NG ;
使うときの注意
① VAR1 = put(1, 8.2 -L); * OK ;
② VAR1 = put(1, 8.2 -L) || "mg"; * NG ;
上記②の場合、
まず「put(1, 8.2 -L)」で左詰めした分、文字値の右側に半角スペースが移動します。
イメージ:「 1.00」→「1.00 」
イメージ:「 1.00」→「1.00 」
この文字と「mg」を結合すると「1.00 mg」といった感じで、不要な半角スペースが混入してしまう。
あくまでもleft関数のような動きをしていることに注意!
まじですか!凄い!知りませんでした!
返信削除いっつも関数で空白飛ばしたりしていました!
人生変わりました。有難うございます。
コメントありがとうございます!
返信削除他人のプログラムにこの小技が入ってたらなんかカッコいいですよね。
この小技はゼロパディングの時など、他にも応用できることがありそうです。
また見に来てください!
もう毎日でもみますよ。
返信削除勉強になります!ブログはじめてくれて凄い嬉しいです。
なんか僕のと違って、文章が読みやすくて綺麗で、内容もためになります!
僕のブログにリンク貼ってもよいです??
日本でテクニカルな議論の場とか、サイトがないので、
返信削除「詰めSAS」毎日見させていただいて勉強になってます。
リンク宜しくお願いします!
こちらからもリンク貼らせてください。
いや、うちのグループの男性陣に紹介したら、
返信削除皆こっちの方がためになる。僕のブログは我が強すぎて、文章がうざいともっぱらの噂です。
リンク有難うございます!!