Sas で indexw 関数を使用する方法
SAS のINDEXW関数を使用すると、文字列内に出現する単語の最初の文字の位置を返すことができます。
この関数は次の基本構文を使用します。
INDEXW(ソース、抜粋)
金:
- ソース: 分析するチャネル
- extract :ソース内で検索する単語
次の例は、この関数を実際に使用する方法を示しています。
例: SAS での INDEXW 関数の使用
SAS に式の列を含む次のデータセットがあるとします。
/*create dataset*/
data original_data;
input sentence $40. ;
datalines ;
A pig is my favorite animal
My name is piglet
Pigs are so cute
Here is a baby pig
His name is piggie
;
run ;
/*view dataset*/
proc print data = original_data;
INDEXW関数を使用すると、フレーズ列内で最初に単語「pig」が出現する位置を見つけることができます。
/*find position of first occurrence of 'pig' in phrase column*/
data new_data;
set original_data;
indexw_pig = indexw (phrase, 'pig');
run ;
/*view results*/
proc print data = new_data;
Indexw_pigという新しい列には、式列内で最初に出現した単語「pig」の位置が表示されます。
単語 “pig” が式列に出現しない場合、 INDEXW関数は単に値0を返します。
たとえば、結果から次のことがわかります。
最初の文で単語「pig」が最初に出現する位置は3です。
2 行目は文中に「pig」という単語だけが含まれていないため、値0が返されます。
等々。
INDEX関数とINDEXW関数の違い
SAS のINDEX関数は、別の文字列内で特定の部分文字列が最初に出現する位置を返します。
対照的に、 INDEXW関数は、別の文字列内で特定の単語が最初に出現する位置を返します。
定義上、単語の前後にはスペースが必要です。
次の例は、 INDEX関数とINDEXW関数の違いを示しています。
/*create new dataset*/
data new_data;
set original_data;
index_pig = index (phrase, 'pig');
indexw_pig = indexw (phrase, 'pig');
run ;
/*view new dataset*/
proc print data = new_data;
index_pig列には、 phrase列内で部分文字列「pig」が最初に出現する位置が表示されます。
Indexw_pig列には、式列内で最初に出現した単語「pig」の位置が表示されます。
追加リソース
次のチュートリアルでは、SAS の他の一般的な関数の使用方法について説明します。
SAS で SUBSTR 関数を使用する方法
SAS で COMPRESS 機能を使用する方法
SAS で FIND 関数を使用する方法
SAS での COALESCE 機能の使用方法