我尝试使用本地宏创建forvalues
循环:
local open forval i=1/10 {
local close }
`open'
di `i'
`close'
但是,出现以下错误:
forval command may not result from a macro expansion interactively or in do files
r(198);
我在做什么错了?
答案 0 :(得分:3)
该错误消息非常不言自明。斯塔塔的口译员只是拒绝 在此级别上使用抽象。
您尝试做的事情只能在某种程度上实现:
local open i = 1 / 10
forvalues `open' {
display `i'
}
换句话说,您只能抽象循环的范围,而不能抽象循环本身。
这是宏扩展限制的一个很好的例子,理论上可以在任何地方使用。