【问题标题】:Stata: Removing Non-unique duplicatesStata:删除非唯一重复项
【发布时间】:2020-04-16 19:35:46
【问题描述】:

考虑到我的数据中的 subyear_total 变量,我想保留每个公司年度观察的副本。

如副本所示,我的某些数据在任何给定年份都有多个条目。

副本的创建者:

bysort cik year: gen copies = _N

如何删除重复项但保留唯一观察的一份副本?

* Example generated by -dataex-. To install: ssc install dataex
clear
input int year long cik float(subyear_total copies)
1999 1750   425000  1
2005 1750  4232000  1
2006 1750 1.60e+07  1
2007 1750   182444  3
2007 1750   182444  3
2007 1750   182444  3
2008 1750   710909  3
2008 1750   710909  3
2008 1750   710909  3
2009 1750  5155390  5
2009 1750  5155390  5
2009 1750  5155390  5
2009 1750  5155390  5
2009 1750  5155390  5
end

例如:

2007 年有 3 个条目,我想保留其中一个并删除其余条目。 2008 年和 2009 年也是如此(有 5 个条目)。

如果drop if copies > 1 我会丢失那些年的所有实例吗?我怎样才能至少保留一个?

【问题讨论】:

    标签: stata


    【解决方案1】:

    duplicates 可以在这里使用,但在你的情况下

    bysort year cik : keep if _n == 1 
    

    直接带你到那里。变量copies 没有明显的用处。

    【讨论】:

      【解决方案2】:

      您想在代码中使用_n 而不是_N 来分配分组ID,例如:

      bysort cik year: gen copies = _n
      

      然后用copies大一删除观察:

      drop if copies > 1
      

      【讨论】:

      • 这可行,但您根本不需要任何新变量。看我的回答。
      猜你喜欢
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2020-08-08
      相关资源
      最近更新 更多