删除上一行

时间:2017-05-01 12:07:18

标签: stata

我有以下数据:

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); 

1 个答案:

答案 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 |
     +--------------+