2

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

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

有没有更简单的方法来写这个,即:

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

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

4

1 回答 1

2

你可以使用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
于 2013-09-30T13:12:37.253 回答