マクロがあるとします
global LabNames "3M" "ABBOTT" "MERCK SHARP DOHME"
単語が正しくグループ化されるように引用符を使用しています (MERCK SHARP DOHME は 1 つの会社であり、3 つの異なる会社ではありません)。変数を調べて、LabNames の文字列の 1 つを部分文字列として持つときにそれを置き換えるプログラムを作成しようとしています。
正常に動作するコードの部分から始めましょう。
foreach company of global LabNames {
display "`company'"
}
私の場合、このコードは必要に応じて処理されます - 3 つの異なる会社 (5 ではありません) をリストします。ただし、次のコードは正しく実行されません。3Mで壊れます。
gen hasLab = 0
foreach company of global LabNames {
display "`company'"
replace hasLab = (index(lab,`"`company'"'))
replace lab = `"`company'"' if hasLab > 0
}
このコードを適用すると
lab
asdf 3M
3M
ABBOTT
ABBOTT asdf
MERCK SHARP DOHME AS
MERCK SHARP DOHME 4
我々が得る
lab
3M
asdf 3M
ABBOTT
ABBOTT
MERCK SHARP DOHME
MERCK SHARP DOHME
コードが 3M のケースを正しく処理できるようにするにはどうすればよいか分かりますか?