Sas で index 関数を使用する方法 (例付き)
SAS のINDEX関数を使用すると、別の文字列内で最初に出現した文字列の位置を返すことができます。
この関数は次の基本構文を使用します。
INDEX(出典、抜粋)
金:
- ソース: 分析するチャネル
- extract :ソース内で検索する文字列
次の例は、この関数を実際に使用する方法を示しています。
例: SAS での INDEX 関数の使用
SAS に名前の列を含む次のデータセットがあるとします。
/*create dataset*/
data original_data;
input name $25.;
datalines ;
Andy Lincoln Bernard
Michael Smith
Chad Simpson Arnolds
Derrick Smith Henrys
Eric Millerton Smith
Frank Giovanni Goode
;
run ;
/*view dataset*/
proc print data = original_data;
INDEX関数を使用すると、各行で最初に文字列「Smith」が出現する位置を見つけることができます。
/*find position of first occurrence of 'Smith' in name*/
data new_data;
set original_data;
first_smith = index (name, ' Smith ');
run ;
/*view results*/
proc print data = new_data;
first_smithという新しい列には、 name列で最初に出現した文字列「Smith」の位置が表示されます。
「Smith」がまったく見つからない場合、 INDEX関数は単に値0を返します。
INDEX関数では大文字と小文字が区別されることに注意することが重要です。そのため、代わりに「smith」を検索すると、 INDEX関数は各文字列に対して0を返します。
/*find position of first occurrence of 'smith' in name*/
data new_data;
set original_data;
first_smith = index (name, ' smith ');
run ;
/*view results*/
proc print data = new_data;
大文字と小文字を区別しない検索を実行するには、次のようにlowcase()関数を使用して各文字列を小文字に変換してから、「smith」を検索します。
/*find position of first occurrence of 'smith' in name*/
data new_data;
set original_data;
first_smith = index ( lowcase (name), ' smith ');
run ;
/*view results*/
proc print data = new_data;
最初に各文字列を小文字に変換すると、 INDEX関数を使用して大文字と小文字を区別しない検索を実行できます。
追加リソース
次のチュートリアルでは、SAS の他の一般的な関数の使用方法について説明します。
SAS で SUBSTR 関数を使用する方法
SAS で COMPRESS 機能を使用する方法
SAS で FIND 関数を使用する方法
SAS での COALESCE 機能の使用方法