Sas で findc 関数を使用する方法
SAS でFINDC関数を使用すると、文字列内の個々の文字が最初に出現する位置を返すことができます。
この関数は次の基本構文を使用します。
FINDC (文字列、タンクのリスト)
金:
- string : 解析する文字列
- charlist :ソース内で検索する文字のリスト
次の例は、この関数を実際に使用する方法を示しています。
例: SAS での FINDC 関数の使用
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;
FINDC関数を使用して、文字x 、 yまたはzが最初に出現する位置を見つけることができます。
/*find position of first occurrence of either x, y or z in name*/
data new_data;
set original_data;
first_xyz = findc (name, 'xyz');
run ;
/*view results*/
proc print data =new_data;
first_xyzという新しい列には、 name列内で文字x 、 y 、またはzが最初に出現する位置が表示されます。
これら 3 つの文字がname列に存在しない場合、 FINDC関数は単に値0を返します。
たとえば、結果から次のことがわかります。
最初の行で最初に出現する x、y、または z の位置は、位置4です。最初の行の 4 番目の文字がyであることがわかります。
これら 3 つの文字が 2 行目の名前に存在しないため、2 行目で最初に出現する x、y、または z の位置は0になります。
等々。
FIND 関数と FINDC 関数の違い
SAS のFIND関数は、別の文字列内で特定の部分文字列が最初に出現する位置を返します。
次の例は、 FIND関数とFINDC関数の違いを示しています。
/*create new dataset*/
data new_data;
set original_data;
find_smith = find (name, 'Smith');
findc_smith = findc (name, 'Smith');
run ;
/*view new dataset*/
proc print data =new_data;
find_smith列には、 name列内で部分文字列「Smith」が最初に出現した位置が表示されます。
findc_smith列には、 name列内で最初に出現した文字s 、 m 、 i 、 t 、またはhの位置が表示されます。
たとえば、結果から次のことがわかります。
部分文字列 ‘Smith’ が名に現れることはないため、 find_smith は値0を返します。
文字i は名の 7 番目の位置にあるため、 findc_smith は値7を返します。
等々。
追加リソース
次のチュートリアルでは、SAS の他の一般的な関数の使用方法について説明します。
SAS で FIND 関数を使用する方法
SAS で SUBSTR 関数を使用する方法
SAS で COMPRESS 機能を使用する方法