Sas で countw 関数を使用する方法 (例付き)
SAS のCOUNTW関数を使用すると、文字列内の単語数をカウントできます。
この関数は次の構文を使用します。
COUNTW(文字列, <文字>, <修飾子>)
金:
- string:カウントする単語を含む文字列
- Character : 文字のリストを初期化するオプションの文字定数
- edit : 単語間の区切り文字としてカウントする文字または記号を指定するオプションのコード
次の例は、この関数を実際に使用する方法を示しています。
例: SAS で COUNTW 関数を使用する方法
SAS に次のデータセットがあると仮定します。
/*create dataset*/
data my_data;
input phrase $char50. ;
datalines ;
Hey_everyone
What's going on today
Wow, what a great day
Let's have fun
We should play basketball
This weather is so so awesome
;
run ;
/*view dataset*/
proc print data =my_data;
次のコードは、 COUNTW関数を使用して、式列の各行の単語数を表示する新しい列を作成する方法を示しています。
/*create new dataset that shows number of words in each row*/
data new_data;
set my_data;
word_count = countw (phrase);
run ;
/*view new dataset*/
proc print data =new_data;
デフォルトでは、 COUNTW関数は単語間の区切り文字としてスペースのみを考慮します。
それで:
- 最初の文にはスペースがないため、COUNTW 関数は合計で1 つの単語のみをカウントします。
- 2 番目の文にはスペースが 3 つあるため、COUNTW 関数には合計4 つの単語が含まれます。
- 3 番目の文にはスペースが 4 つあるため、COUNTW 関数には合計5 つの単語が含まれます。
等々。
ただし、単語間の区切り文字としてもカウントされる修飾子のリストを指定できます。
たとえば、次の構文を使用して、スペースとアンダースコアの両方を単語間の区切り文字と見なすように指定できます。
/*create new dataset that shows number of words in each row*/
data new_data;
set my_data;
word_count = countw (phrase, '_');
run ;
/*view new dataset*/
proc print data =new_data;
アンダースコアも単語間の区切り文字と見なされるべきであることを明確にしたため、新しいword_count列は最初の文の単語数を正確にカウントするようになりました。
注: SAS COUNTW関数の完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS で文字列から数値を抽出する方法
SAS で SUBSTR 関数を使用する方法
SAS の文字列から特殊文字を削除する方法