Stata:删除重复观测值

1.当一条样本的全部变量均与另一条或多条样本重复时,直接使用duplicates drop _all, force

或gduplicates drop _all, force,后者为外部命令,在样本较大时对运算速度的提升非常明显。

 

2.当一条样本的部分变量与另一条或多条样本重复时,需要

(a) 判断不重复的那些变量是否发生了错误以确定应该保留哪一条并设置mark变量标记为1

如 gen byte mark=(keyvar=="最好") //keyvar为关心的那个产生重复的变量

bys id: gen byte max_mark=max(mark) //其中,id为对个体的分组变量,如工企库中的企业法人代码或企业名称等,可能有几个个体的相似程度很高,需要在整理数据的时候去重

keep if mark==max_mark

drop mark max_mark

(b) 无法判断哪一条更为重要或不在意保留哪一条时,由于不同个体(对应不同id)可能在某个变量keyvar有相同的取值,而想要删除的是同一个个体(相同id的不同样本)出现多条样本时,keyvar的取值不同,此时可以

gduplicates tag id keyvar, g(tag) //生成重复次数变量

bys id tag : gen count=_n //生成重复组的顺序变量

keep if count=1 //在不关心保留重复样本中的哪一条时,随意选择保留第一条

drop count tag

gduplicates report id //观察是否有个体id的重复

posted @ 2023-01-14 20:54  myrj  阅读(2157)  评论(0编辑  收藏  举报