別データに含まれている全角文字が含まれるオブザベーションを削除する方法

[OS] Windows
[リリース] 9.3, 9.4
[キーワード] SAS Foundation、全角文字列の検索

[質問]

あるデータにおいて、別データを参照して存在する全角文字列が含まれるか否かを判定してそのデータを含まないデータを作成したい。

[回答]

全角文字列を検索する場合、KINDEXC 関数を使用する方法があります。
KINDEXC 関数は、検索する文字式を左から右へ、文字式で検索する文字内に含まれるいずれかの文字が最初に現れる位置を検索して返します。
見つからない場合は、0を返します。

例)
/*サンプルデータ作成*/
DATA sample1;
INPUT KEY DATA $;
CARDS; 
1 月火水
2 水木夜 
3 土日朝 
4 金土夕 
5 日朝昼 
6 月水夕 
;
RUN;
DATA sample2;
INPUT DATA $;
CARDS; 
朝昼夜
;
RUN;

/*全角文字列を検索して含まれない場合出力する*/
PROC SQL NOPRINT;
  CREATE TABLE outdata AS
    SELECT a.key, a.data
      FROM sample1 a ,sample2 b
        WHERE kindexc(b.data, compress(a.data)) = 0;
QUIT;