2010年6月17日木曜日

COMPRESS関数の第3引数について調べてみました。(前編)

普段から度々使うことのあるCOMPRESS関数ですが、今回は普段あまり使わない第3引数について調べてみました。
(少々記事が長くなるので前編後編の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 件のコメント:

コメントを投稿

ネイチャーインサイト サイトリニューアル&NIBLOGの引っ越し

ご連絡が遅くなりましたが、 ネイチャーインサイトの際とがリニューアルしました。 https://www.n-insight.co.jp/ それに伴い、NIBLOGも引っ越しすることになりました。 https://www.n-insight.co.jp/niblog/ ...