stata - 循环内的Stata if条件
问题描述
我正在尝试编写一个带有宏变量的循环,该变量将根据循环的迭代值而变化。请参阅下面的代码。
我想循环代码值“QLD”和“DDM”,如果代码是“QLD”,我希望本地宏索引等于“QQQ”,否则为“DIA”。
foreach ticker in "QLD" "DDM"{
if `ticker'="QLD"{
local index = "QQQ"
}
else{
local index = "DIA"
}
di `index'
}
解决方案
您要求的代码更接近
foreach ticker in QLD DDM {
if "`ticker'" == "QLD" local index = "QQQ"
else local index = "DIA"
di "`index'"
}
您的代码中有两个错误,并且代码超出了您的需要。错误是在需要的地方省略引号并=
用于测试相等性。
仅此选择不需要循环:
local index = cond("`ticker'" == "QLD", "QQQ", "DIA")
di "`index'"
事实上,正如上面的命令所示,DDM
显然根本不需要提及。(如果是这样,那么您的代码由于某些其他原因是错误的。)
推荐阅读
- logstash - jdbc_static:得到一个我没有写的 sql 语法错误
- java - 检查对象是否为空以准备映射的最佳方法
- spring - 是否称为 Rest Service Webflux
- python - 属性错误“functools.partial”对象没有属性“__name__”
- javascript - 创建带有空白背景屏幕的警报弹出窗口
- vba - 如何用 ADO Recordset 中的值填充 Recordsource?
- reactjs - 我可以在一个 spring 项目中创建两个 react 应用程序吗?
- ruby-on-rails - Rails collection_select 不同的选定属性
- excel - Excel VBA 中需要的对象
- c++ - 有没有办法将变量保存在 std::string 中?