Stata 类型与本地宏不匹配?

Stata type mismatch with local macro?

我正在尝试在 Stata 中创建一个循环以 运行 一堆回归。这是一个非常简化的版本:

foreach y of local years{
    forval i=1/50 {
        local cov `: word `i' of `covariates''
        local int `: word `i' of `interactions''
        if `cov' != "N" {
            *regression stuff*
        }
    }
}

yearscovariatesinteractions是我要循环的局部宏,后两个的长度是50,都是由字符串组成的,例如

local covariates "covariate1 covariate2 covariate3 covariate4"

这里的关键是 covariates 中的某些实例(以及完整代码中的 interactions)我有一个名为“N”的字符串,这意味着我不想要在该实例中使用协变量进行回归。因此,

if `cov' != "N"

条件。问题是那一行给我一个类型不匹配错误,我不确定为什么。有谁知道为什么会这样吗?谢谢!

此处:if `cov' != "N"cov 求值为变量名,第一个观察值与字符串“N”进行比较,因此出现类型错误。

您可能需要:

if "`cov'" != "N"