Stata:删除非唯一重复项

Stata: Removing Non-unique duplicates

考虑到我数据中的 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我会失去那些年的所有实例吗?我怎样才能至少保留一个?

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

bysort cik year: gen copies = _n

然后删除 copies 较大的观测值:

drop if copies > 1

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

bysort year cik : keep if _n == 1 

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