使用本地宏创建循环失败

时间:2018-08-27 10:23:33

标签: stata stata-macros

我尝试使用本地宏创建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);

我在做什么错了?

1 个答案:

答案 0 :(得分:3)

该错误消息非常不言自明。斯塔塔的口译员只是拒绝 在此级别上使用抽象。

您尝试做的事情只能在某种程度上实现:

local open i = 1 / 10 

forvalues `open' {
    display `i'
}

换句话说,您只能抽象循环的范围,而不能抽象循环本身。

这是宏扩展限制的一个很好的例子,理论上可以在任何地方使用。