我有以下数据:
n v1 v2
n1 1 A
n2 1 B
n3 1 C
n4 2 C
n5 1 D
n6 1 D
n7 1 E
如何删除v1==2
之前的行?那只是删除n3
。
我尝试过以下命令,但显然它不起作用:
. drop [_n-1] if v1==2
weights not allowed
r(101);
答案 0 :(得分:2)
以下对我有用:
clear
input str2 n v1 str1 v2
n1 1 A
n2 1 B
n3 1 C
n4 2 C
n5 1 D
n6 1 D
n7 1 E
end
bysort v2 (v1): drop if v1 == 1 & v1[_N] == 2
list, separator(0)
+--------------+
| n v1 v2 |
|--------------|
1. | n1 1 A |
2. | n2 1 B |
3. | n4 2 C |
4. | n5 1 D |
5. | n6 1 D |
6. | n7 1 E |
+--------------+