假设你有宏
global LabNames "3M" "ABBOTT" "MERCK SHARP DOHME"
我使用引号是为了正确分组单词(MERCK SHARP DOHME 是一家公司,而不是三家不同的公司)。我正在尝试编写一个程序来遍历一个变量并在它具有 LabNames 字符串之一作为子字符串时替换它。
让我们从可以正常工作的代码部分开始。
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 案例吗?