Stata if 循环中的条件
Stata if condition within a loop
我正在尝试编写一个带有宏变量的循环,该变量将根据循环的迭代值而改变。请参阅下面的代码。
我想遍历代码值“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
显然根本不需要提及。 (如果是这样,那么您的代码由于其他原因是错误的。)
我正在尝试编写一个带有宏变量的循环,该变量将根据循环的迭代值而改变。请参阅下面的代码。
我想遍历代码值“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
显然根本不需要提及。 (如果是这样,那么您的代码由于其他原因是错误的。)