【问题标题】:(command) if x==list in stata(命令)如果 x==stata 中的列表
【发布时间】:2013-09-30 11:08:41
【问题描述】:

我希望能够编写if 表达式而不必求助于大量的或“|”运营商。例如:

drop if x==1 | x==3 | x==5 | x==7

有没有更简单的写法,即:

drop if x==one of (1,3,5,7)

我意识到 for 循环可以工作,但这不是一个非常整洁的解决方案。

【问题讨论】:

    标签: if-statement stata


    【解决方案1】:

    您可以为此使用inlist

    sysuse auto
    
    
    
        tab  rep78
    
         Repair |
    Record 1978 |      Freq.     Percent        Cum.
    ------------+-----------------------------------
              1 |          2        2.90        2.90
              2 |          8       11.59       14.49
              3 |         30       43.48       57.97
              4 |         18       26.09       84.06
              5 |         11       15.94      100.00
    ------------+-----------------------------------
          Total |         69      100.00
    keep if inlist(rep78,1,2,3)
    
     tab  rep78
    
         Repair |
    Record 1978 |      Freq.     Percent        Cum.
    ------------+-----------------------------------
              1 |          2        5.00        5.00
              2 |          8       20.00       25.00
              3 |         30       75.00      100.00
    ------------+-----------------------------------
          Total |         40      100.00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      相关资源
      最近更新 更多