【问题标题】:In Stata, how do I correctly use if statement inside foreach loop?在 Stata 中,如何在 foreach 循环中正确使用 if 语句?
【发布时间】:2014-08-08 11:16:57
【问题描述】:

我正在尝试使用 if 语句为我在 Stata 中的 foreach 循环中创建的图表分配正确的标签:

foreach major in var1 var2 {

    * conditional labelling
    if "`major'" == "var1" {
        local ytitle "title for var1"
    }
    else if "`major" == "var2" {
        local ytitle "title for var2"
    }

    di in red "____________"
    di in red "`major'"
    di in red "`ytitle'"
    di in red "____________"

}

这个练习的输出是

____________
var1
should be var1
____________
____________
var2
should be var1
____________

我的问题是 - 为什么在循环的第二个实例中本地没有改变?

【问题讨论】:

    标签: loops foreach stata


    【解决方案1】:

    这个例子有点混乱,因为输出中的“应该是”这个词应该是(可以这么说)“标题”,与代码匹配。除此之外,您的错误是无与伦比的单引号。试试

    foreach major in var1 var2 {
    
        * conditional labelling
        if "`major'" == "var1" {
           local ytitle "title for var1"
        }
        else if "`major'" == "var2" {
           local ytitle "title for var2"
        }
    
        di in red "____________"
        di in red "`major'"
        di in red "`ytitle'"
        di in red "____________"
    
    }
    

    【讨论】:

    • 谢谢尼克!看来我又在 Stata 报价上失败了:/
    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多