第2回目は、CATX関数。
この関数は「文字列同士を区切り記号付きで連結する」という機能を持っています。
構文
CATX( "区切り文字" , 変数1, 変数2, ・・・ ) |
- 変数値の先頭か末尾に半角スペースがある場合は、それらを削除してから結合する
- 文字変数が欠損値の場合は、その変数はスキップされる (区切り文字もつかない)
基本的な構文や機能は以下記事で紹介済みなので、そちらをご覧ください。
http://sas-boubi.blogspot.jp/2015/11/catx.html
例
例えば、以下X1~X4までの変数値を連結してYのような文字列を作りたいとします。
今までは、以下Beforeのようなメンドクサイ書き方をする必要ありました。あー面倒だなーって言いながら書いてました。
http://sas-boubi.blogspot.jp/2015/11/catx.html
例えば、以下X1~X4までの変数値を連結してYのような文字列を作りたいとします。
X1
|
X2
|
X3
|
X4
|
Y
|
---|---|---|---|---|
aa | bb | cc | aa,bb,cc |
今までは、以下Beforeのようなメンドクサイ書き方をする必要ありました。あー面倒だなーって言いながら書いてました。
それがAfterのようにCATX関数を使えば超スッキリと短い文で書けてしまいます。
After
今でこそ当たり前につかってますが、知ったときは感動しました。
Before
length Y $20.;
array AR(*) X1-X4; do i=1 to dim(AR); if AR(i)^="" then do; if Y = "" then Y=left(AR(i)); else Y = trim(left(Y)) || "," || trim(left(AR(i))); end; end; |
After
length Y $20.;
Y = catx( "," ,X1,X2,X3,X4 ); |
今でこそ当たり前につかってますが、知ったときは感動しました。
2.CATX関数
0 件のコメント:
コメントを投稿