文字変数値の一部を抽出する方法について

[OS] ALL
[リリース] 8.2
[キーワード] SAS 8, KSCAN, SCAN

[質問]

下記のようなデータ変換を行なうには、どのようにすればよいでしょうか。

元のデータの内容:

男性(20才)
男性(30才)
女性(20才)
男性(40才)

変換後のデータの内容:

男性
男性
女性
男性

[回答]

いくつかの方法が考えられますが、SCAN関数を利用し、「(」の前までの文字列を抽出する方法をご紹介します。SCAN関数は区切り文字で値を区切り、N番目の語を抽出します。また、2バイト文字を使用するには、KSCAN関数を使用します。次のようなプログラムでデータの抽出が可能です。


DATA test;
  INPUT dat $20.;
CARDS;
男性(20才)
男性(30才)
女性(20才)
男性(40才)
;
RUN;

DATA results;
  SET test;
                       /* 全角'('で値を区切り、1番目の語を抽出 */
  dat=KSCAN(dat,1,'(');
  PUT dat=;
RUN;