2017年6月8日木曜日

変数に含まれる特定の文字の数をカウントする:COUNT関数編



例えば「this is a pen」という文字列に「is」という文字が何個含まれるかカウントしたいような場合、COUNT系関数が使えます。






シングルバイト(半角の英数など)の文字を対象とする場合、以下2つの関数を状況によって使い分ける。

data DT1;
     A  = "this is a pen" ;
     B  = count( A , "is" );
     C  = countc( A , "isp" );
run;
  A  
  B  
  C  
  this is a pen    2  5


解説
COUNT( A , "is")
第2引数の "is" という文字列が変数Aに何個あるかを返す。
(見つからなかった場合は0を返す。)


COUNTC( A , "isp" )
第2引数の "isp"を一字ずつ分解し、「i」「s」「p」という文字が変数Aに何個あるかを返す。
(見つからなかった場合は0を返す。)




注意点
日本語などの文字を含む場合は、以下記事の通りうまく動作しないのでご注意ください。
関数の落とし穴:5C問題

残念ながらマルチバイト(日本語などの全角文字など)を含む文字を対象とする関数は用意されてないっぽいです。


0 件のコメント:

コメントを投稿