ミドルネームの頭文字とミドルイニシャルを含む文字列からミドルイニシャルを削除する方法を探しています(例:「Mary A」は「Mary」でなければなりません)。ミドルイニシャルを削除しますが、ミドルネームは文字列から削除しないでください。
しかし、私は初期(例 "Mary Ann"が "Mary Ann"のままである)以上の場合、中間/秒の名前を保持する必要があります。ここで
多くのおかげで、
マット
ミドルネームの頭文字とミドルイニシャルを含む文字列からミドルイニシャルを削除する方法を探しています(例:「Mary A」は「Mary」でなければなりません)。ミドルイニシャルを削除しますが、ミドルネームは文字列から削除しないでください。
しかし、私は初期(例 "Mary Ann"が "Mary Ann"のままである)以上の場合、中間/秒の名前を保持する必要があります。ここで
多くのおかげで、
マット
は、この使用して正規表現置換を行う方法の例です。私は、プロシージャ・SQLを使用しましたが、これはまた、データのステップで動作します:次のように正規表現が構築さ
data names;
input name & $5.;
cards;
Aa A
Aa Aa
Aaa A
;
run;
proc sql;
select prxchange('s/^(\w+)\s+\w\s*$/$1/',-1,name) from names;
quit;
:
は機能scan
使用してみてください。その結果
data test;
input name $20.;
cards;
Mary A
Anthony B
Mary Ann
Anthony Bernard
;
run;
data res;
set test;
if (length(scan(name,2))=1) then name=scan(name,1);
run;
を、あなたが得る:
Mary
Anthony
Mary Ann
Anthony Bernard
を