|
|
文字列に含まれる特定の文字の数を求める
[OS] ALL
[リリース] ALL
[キーワード] Base、count、COUNT function
[質問]
ある文字列に含まれる、特定の文字の数を求めるプログラムを記述しようとしています。
たとえば、文字列「03-XXXX-XXXX」に含まれている「 - 」の数を求めるには、どのように記述すればよいですか。
[回答]
SAS 9.1以降では、COUNT関数を使用して特定の文字の数を求められます。
SAS 8.2以前では、LENGTH関数とCOMPRESS関数を使用して求められます。
下記にそれぞれの例を示しますので、ご参照ください。
サンプルデータセットの作成
data sample;
length text $ 20;
input text $;
cards;
XX-XXXX-XXXX
XXXX-XXXX
XXXX
;
run;
- ■ SAS 9.1以降
-
data sample;
set sample;
cnt=count(text,'-'); /* COUNT関数 */
put cnt=;
run;
- ■ SAS 8.2以前
-
data sample;
set sample;
/* 検索する文字列に1文字追加 */
_text = '09'x || text;
/* 文字数のカウント */
cnt=length(_text) - length(compress(_text,'-'));
put cnt=;
run;
|