2007年3月6日火曜日

V9での新機能「COUNT/COUNTC関数」



V9で仲間に加わった関数を紹介します。


COUNT関数とCOUNTC関数です。



コレ結構使えそうです。



名称から想像つくかもしれませんが、


検索対象から検索値をカウントして、その結果(カウント数)を返す関数です。



今までですと、


SUBSTR関数で1文字ずつ切り出して、その桁数分処理を繰り返したり、


COMPRESS関数で検索値を取り除いた桁数と元の桁数から算出したりと、


やりたいことは単純明解なのに手間のかかる処理が必要でした。



それでは実際にやってみましょう。



まずは、COUNT関数です。



 * ① ;


 data _NULL_ ;


  x = "NI Nature Insight" ;


  y = count(x, "NI") ;


  put y = ;


 run ;



結果は以下の通りです。


f:id:n-insight:20070305223604g:image


変数Xの"NI Nature Insight"


赤字部分が検索に引っ掛かり、1という戻り値が返ってきました。



変数Xの"NI Nature Insight"


青字部分もカウントしたい場合は、COUNTC関数を使います。



 * ② ;


 data _NULL_ ;


  x = "NI Nature Insight" ;


  y = countc(x, "NI") ;


  put y = ;


 run ;



f:id:n-insight:20070305224331g:image


変数Xの"NI Nature Insight"


赤字部分が検索に引っ掛かり、4という戻り値が返ってきました。



①と②の違いは分かりましたか?


①(COUNT関数)は、第2引数を文字列として検索するのに対して、


②(COUNTC関数)は、第2引数を文字として検索します。




②の結果からも分かるように、上記のような書き方ですと


いわゆる大文字小文字を別のモノとして検索しているのが分かります。


(②で"NI Nature Insight"の青字部分が検索結果にカウントされていません。)




以下のように、第3引数を与えると、大文字小文字を区別しない検索結果が返ります。



 * ③ ;


 data _NULL_ ;


  x = "NI Nature Insight" ;


  y = count(x, "ni", "i") ;


  put y = ;


 run ;



f:id:n-insight:20070305224348g:image



 * ④ ;


 data _NULL_ ;


  x = "NI Nature Insight" ;


  y = countc(x, "ni", "i") ;


  put y = ;


 run ;



f:id:n-insight:20070305224402g:image



③の結果はともかく、④の結果をよく見て下さい。



変数Xの"NI Nature Insight"赤字部分が全て検索結果にカウントされて、


戻り値として、6が返ってきます。





第3引数に与えるキーワードとして、他に"t"、"o"、"v"があるようです。


(COUNT関数は、"i"、"t"のみ)


※詳しくは、sas.com内のWhat’s New in the Base SAS 9.0, 9.1, and 9.1.3 Languageをご覧下さい。


0 件のコメント:

コメントを投稿

ネイチャーインサイト サイトリニューアル&NIBLOGの引っ越し

ご連絡が遅くなりましたが、 ネイチャーインサイトの際とがリニューアルしました。 https://www.n-insight.co.jp/ それに伴い、NIBLOGも引っ越しすることになりました。 https://www.n-insight.co.jp/niblog/ ...