2013-09-30 16 views
2

我希望能夠編寫if表達式,而不必訴諸大量或「|」運營商。例如:(command)if x == stata中的列表

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

有沒有寫這個也就是一個簡單的方法:

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

我認識一個for循環將工作,但不是一個非常漂亮的解決方案。

回答

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 
+0

這正是我想要的,謝謝! –

+0

沒問題..... – Metrics