Sas: 区切り文字で文字列を分割する方法
SAS のscan()関数を使用すると、特定の区切り文字に基づいて文字列をすばやく分割できます。
次の例は、この関数を実際に使用する方法を示しています。
例: SAS で文字列を区切り文字で分割する
SAS に次のデータセットがあると仮定します。
/*create dataset*/ data my_data1; input name $25.; datalines ; Andy_Lincoln_Bernard Barry_Michael Chad_Simpson_Smith Derrick_Parson_Henry Eric_Miller Frank_Giovanni_Goodwill ; run ; /*print dataset*/ proc print data =my_data1;
次のコードを使用すると、名前文字列を 3 つの個別の文字列にすばやく分割できます。
/*create second dataset with name split into three columns*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); run ; /*view second dataset*/ proc print data =my_data2;
名前列文字列が 3 つの新しい列に分割されていることに注意してください。
区切り文字が 1 つしかない名前の場合、 name3列の値は単に空になります。
ドロップ関数を使用して、新しいデータセットから元の名前列を削除することもできることに注意してください。
/*create second dataset with name split into three columns, drop original name*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); dropname ; run ; /*view second dataset*/ proc print data =my_data2;
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS でデータを正規化する方法
SAS で変数の名前を変更する方法
SAS で重複を削除する方法
SAS で欠損値をゼロに置き換える方法