【问题标题】:Stata: Delete all but one observations with the same value for a variableStata:删除除一个变量之外的所有具有相同值的观察值
【发布时间】:2014-07-05 16:00:33
【问题描述】:

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

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

有没有(简单的)方法可以做到这一点?

【问题讨论】:

    标签: duplicates stata


    【解决方案1】:

    您希望drop 对两个变量的观察结果与之前相同:

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

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

    【讨论】:

    • 好的,不知道 stata 中的默认循环。但是效果很好,谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2016-10-16
    相关资源
    最近更新 更多