Par*_*rma 2 stata stata-macros
我有一个名为的本地宏peer_list,它包含280个不同的元素,所有元素都是字符串.我还有另一个本地宏调用used_list,它包含本地包含的元素的子集peer_list.
对于peer_list我想要测试该元素是否在本地的每个元素used_list.如果元素存在于used_list我想丢弃它,否则我想执行另一组条件.
我试图使用以下代码,但它没有工作:
foreach peer in local peer_list {
if `:list peer in local used_list' {
* commands I wish to execute
}
else {
* commands I wish to execute
}
}
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何关于实现这一目标的替代方法的建议.
你没有说你的代码在什么意义上"没有用",你没有提供可重现的例子.然而,你似乎正在沿着正确的方向努力.
local beasts frog toad newt unicorn griffin
local real frog toad newt
foreach b of local beasts {
if `: list b in real' {
di "`b' is real"
}
else di "`b' is fabulous"
}
frog is real
toad is real
newt is real
unicorn is fabulous
griffin is fabulous
Run Code Online (Sandbox Code Playgroud)
类似代码的常见错误是在不同的语言环境中定义和使用本地宏,以便它们无法相互看到.
一个更明显的错误是你需要关键字ofnot in.你拥有的是合法的,但不是你想要的.相比
foreach b in local beasts {
di "`b'"
}
local
beasts
Run Code Online (Sandbox Code Playgroud)