Stata:将非重复行计为重复行
考虑以下代码来检测重复项,如从: 以下是输出:Stata:将非重复行计为重复行,stata,Stata,考虑以下代码来检测重复项,如从: 以下是输出: date id dup 360 1003 0 360 1005 0 360 1017 1 360 1017 2 360 1019 1 360 1019 2 360 1019 3 360 10
date id dup
360 1003 0
360 1005 0
360 1017 1
360 1017 2
360 1019 1
360 1019 2
360 1019 3
360 1023 1
360 1023 2
360 1023 3
我不明白为什么第三行(3601017,1)
是重复的(dup==1
)。。。它是id为1017
的第一行。我错过了什么
我在12号站。你对逻辑感到困惑 对于每个组,根据前缀
by
使用的变量确定,如果有多个观察值,则计数从1开始(请参见help
)。变量dup
对于您参考的相应组的最后一次观察(观察4),说明有两个相同的观察:
360 1017 1
360 1017 2
当且仅当不存在重复项时,观察值标记为0
。例如,观察2:
360 1005 0
检查最小修改代码的结果:
quietly bysort date id: gen dup2 = cond(_N==1,0,_N)
list, sepby(date id)
这可能对你的原始配方有所帮助。你得到了你想要的。如果值的组合是唯一的(仅出现一次),则
\N
为1,返回值为0
否则,每组的\N
值为2或更多,重复(相同)的观察值被指定为值1、2(视情况而定,依此类推)
在这里和其他地方,在指定的变量上识别重复(相同)的观察结果(这里id date
)
quietly bysort date id: gen dup2 = cond(_N==1,0,_N)
list, sepby(date id)