Stata 类型与本地宏不匹配?

标签 stata stata-macros

我正在尝试在 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"

关于Stata 类型与本地宏不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70959921/

相关文章:

loops - 生成一个新宏,为旧宏的单词添加前缀

r - 相当于 R 中的 Stata 选项卡命令

在R中读取Stata 14文件

stata - 将值存储在宏变量中

regex - 如何从宏中提取唯一字符串?

r - 相当于 R 中 Stata 的展开

测试两个自变量是否具有相同的效果

stata - 从inrange()函数中排除值

loops - 在本地宏中使用通配符循环变量