考虑到我的数据中的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
,我会失去那些年的所有实例吗?我怎么能至少留一个?
这里可以使用duplicates
,但在您的情况下是
bysort year cik : keep if _n == 1
直接把你送到那里。变量copies
则没有明显的用途。
您希望在代码中使用_n
而不是_N
来分配组ID,如:
bysort cik year: gen copies = _n
然后用copies
较大的一个进行跌落观测:
drop if copies > 1