我正在尝试在 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*
}
}
}
years
、covariates
和 interactions
是我正在循环的本地宏,后两者的长度为 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/