查看原文
其他

Stata:duplicates报告、标记或删除重复的观察结果

数量经济学 数量经济学 2023-02-21

Stata:duplicates报告、标记或删除重复的观察结果

描述简介

根据指定的子命令,复制报告、显示、列出、标记或删除重复的观察结果。duplicates是指在所有变量上(如果没有指定varlist)或在指定varlist上具有相同值的观察值。duplicates report生成一个表,显示作为一个或多个副本出现的观察结果,并指出有多少观察结果是“多余的”,即它们是每组副本中第一个副本的第二个(第三个,:::)副本。

duplicates examples为每组重复的观察结果列出一个例子。每个示例表示数据集中每个组的第一次出现。

duplicates list 列出了所有重复的观察结果。标记生成一个变量,表示每个观察结果的重复数量。对于所有唯一的观察结果,它都是0。

duplicates drop删除除了每组重复观测的第一次出现外,所有重复的数据都在下降。drop这个词不能缩写。


命令快速入门

报告var变量出现的次数
duplicates report var

报告id和year同时出现的次数
duplicates report id year

列出所有重复的观察结果
duplicates list var

删除重复变量var(仅保留一个)
duplicates drop var,force

删除同时重复出现id和year的变量
duplicates id year, force

操作应用

导入数据,然后只保存变量make price mpg rep78 foreign

 sysuse auto 
 keep make price mpg rep78 foreign 
 expand 2 in 1/2

报告同时出现的次数

 duplicates report

结果为:

.  sysuse auto 
(1978 Automobile Data)


.  keep make price mpg rep78 foreign 


.  expand 2 in 1/2
(2 observations created)

. duplicates report

Duplicates in terms of all variables

--------------------------------------
   copies | observations       surplus
----------+---------------------------
        1 |           72             0
        2 |            4             2
--------------------------------------




列出所有重复的观察结果

 duplicates list

结果为:

. duplicates list

Duplicates in terms of all variables

  +--------------------------------------------------------------+
  | group:   obs:   make          price   mpg   rep78    foreign |
  |--------------------------------------------------------------|
  |      1      1   AMC Concord   4,099    22       3   Domestic |
  |      1     75   AMC Concord   4,099    22       3   Domestic |
  |      2      2   AMC Pacer     4,749    17       3   Domestic |
  |      2     76   AMC Pacer     4,749    17       3   Domestic |
  +--------------------------------------------------------------+




案例2

假设我们有一个数据集,其中一些观察结果是唯一的(在所有变量上没有其他观察结果是相同的),而其他观察结果是重复的(在每种情况下,至少存在另一个观察结果是相同的)。想象一下,从每组重复数据中删除除1个之外的所有观察结果,也就是说,删除多余的观察结果。现在所有的观察都是独一无二的。这个例子有助于澄清以下两者之间的区别:1)在丢弃剩余副本之前识别独特的观察结果;2)在丢弃剩余副本之后识别独特的观察结果(无论是真实的还是仅仅是想象的)。codebook报告了第二种意义下每个变量的唯一值的数量。

假设我们输入了一个200个人的数据集。然而,一个简单的描述或计数显示,我们的数据集中有202个观察结果。我们猜测我们可能两次输入了两个观察结果。重复报告给出了发生重复的快速报告:

use https://www.stata-press.com/data/r17/dupxmpl
duplicates report

结果为:

. duplicates report

Duplicates in terms of all variables

--------------------------------------
   copies | observations       surplus
----------+---------------------------
        1 |          198             0
        2 |            4             2
--------------------------------------




我们的假设得到了支持:198个观测结果是唯一的(每个观测结果只有1个副本),而4个观测结果是重复的(每个观测结果有2个副本;在每种情况下,1可以被称为多余的)。我们现在希望看到哪些观察结果是重复的,所以下一步是要求得到一个重复列表。

duplicates list

Duplicates in terms of all variables

  +-----------------------------+
  | group:   obs:    id   x   y |
  |-----------------------------|
  |      1     42    42   0   2 |
  |      1     43    42   0   2 |
  |      2    145   144   4   4 |
  |      2    146   144   4   4 |
  +-----------------------------+



id42号和id144号的记录显然被输入了两次。

. duplicates drop

Duplicates in terms of all variables

(2 observations deleted)

duplicate的report、list和drop子命令可能是最有用的,特别是对于相对较小的数据集。对于具有许多重复的较大数据集,完整的列表可能太长而难以管理,特别是当您看到相同数据的重复时。duplicates examples提供了一个更紧凑的清单,其中每组副本仅由一个观察值表示,即第一个出现的观察值。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存