Stata:删除除了一个具有相同变量值的观察值之外的所有观察值

时间:2014-07-04 16:31:57

标签: duplicates stata

我使用的数据集如下所示:

    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工作。

有(简单)方法吗?

1 个答案:

答案 0 :(得分:4)

您希望drop观察与前两个变量相同:

drop if name == name[_n-1] & var1 == var1[_n-1]

请注意,这是一个循环,只是一个默认循环,因为Stata按观察顺序执行,将第二次观察与第一次观察进行比较,依此类推。