(少々記事が長くなるので前編後編の2回に分けて紹介します。)
第3引数にはキーワードとなる修飾子の文字列を指定することで動作を変更できます。
修飾子ごとにいくつか分類して説明します。
■アルファベット文字に関する修飾子
A(またはa) アルファベット (A - Z, a - z) を取り除きます。
L(またはl)小文字アルファベット (a - z) を取り除きます。
U(またはu) 大文字アルファべット (A - Z) を取り除きます。
実行例:
data _null_;
x = "\123-4567-8901 B234-5678-9012 c";
y1 = COMPRESS( x ,,"L") ; * 小文字アルファベットを取り除きます ;
y2 = COMPRESS( x ,"ABCD","L") ; * "ABCD" と小文字アルファベットを取り除きます ;
put y1= / y2= ;
run;
実行結果:
y1=\123-4567-8901 B234-5678-9012
y2=\123-4567-8901 234-5678-9012
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.34 秒
CPU 時間 0.04 秒
■数字に関する修飾子
D(またはd)数字 (0 - 9)を取り除きます。
実行例:
data _null_;
x = "\123-4567-8901 B234-5678-9012 c";
y1 = COMPRESS( x ,,"D") ; * 数字を取り除きます ;
y2 = COMPRESS( x ,"ABCD","D") ; * "ABCD"と数字を取り除きます ;
put y1= / y2=;
run;
実行結果:
y1=\-- B-- c
y2=\-- -- c
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.00 秒
CPU 時間 0.00 秒
■特殊文字に関する修飾子
P(またはp)句読点や記号など(,./\<>?_;:+*@`!"#$%&'()_-=^~\|[]{})を取り除きます。
C(またはc)制御文字を取り除きます。
S(またはs)ブランク("")、水平移動タブ("09"x)、垂直移動タブ("0B"x)、行頭復帰("0D"x)、改行("0A"x)、改ページ("0C"x)などを取り除きます。
G(またはg)図形文字を取り除きます。
W(またはw) 印字可能文字を取り除きます。
実行例:
data _null_;
x = "1"||"09"x||"2"||"09"x||"3"||"09"x||"4"||"09"x||"5";
y1 = COMPRESS(x,, "S"); * タブ("09"x) を取り除きます ;
y2 = COMPRESS(x, "34", "S"); * "34" と タブ("09"x) を取り除きます ;
put y1= / y2=;
run;
実行結果:
y1=12345
y2=125
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.00 秒
いかがでしたでしょうか?
どの修飾子の場合も第2引数との併用ができます。
その他修飾子については後編で紹介します。
投稿者:小森谷
0 件のコメント:
コメントを投稿