我使用的数据集如下所示:
name var1 ...
1 a 1
2 a 1
3 a 1
4 a 2
5 a 2
6 a 3
7 a 1
8 a 1
9 b 1
10 b 1
11 b 2
12 b 2
13 b 3
14 b 3
15 b 3
我的问题是,我希望drop
所有观察都有重复的name
/ var1
组合,但前提是重复是相邻的(基本上,我想放弃观察2,3 ,5,8,10,12,14,15)。
我的第一个想法是创建一个while循环并比较var1
观察i与var1
观察i + 1然后drop
其中一个如果值相等,我无法让它在Stata工作。
有(简单)方法吗?
答案 0 :(得分:4)
您希望drop
观察与前两个变量相同:
drop if name == name[_n-1] & var1 == var1[_n-1]
请注意,这是一个循环,只是一个默认循环,因为Stata按观察顺序执行,将第二次观察与第一次观察进行比较,依此类推。