我希望能够编写 if
表达式,而不必求助于大量或“|”运营商。例如:
drop if x==1 | x==3 | x==5 | x==7
有没有更简单的方法来编写这个即:
drop if x==one of (1,3,5,7)
我意识到 for 循环可以工作,但这不是一个非常整洁的解决方案。
最佳答案
您可以使用 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
关于if-statement - (命令) if x==stata 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092699/