我有一个数据集,其中每一行都是一个牢固的年份对,而firmid
这是一个字符串。
如果我做
duplicates drop firmid year, force
由于没有重复项,因此它不会删除任何内容(我最初是在运行之后创建数据集的duplicates drop firmid year, force
)。
到现在为止还挺好。我想创建一个需要firmid
数字的面板。所以我跑
egen newid = group(firmid)
xtset newid year
但是会弹出“面板中的重复时间值”错误。此外,
duplicates list newid year
列出了一堆重复项。
好像egen, group()
没有生成唯一的组。我的问题是:为什么,以及如何以健壮的方式创建唯一的组?
这是一个旧线程,但是我最近遇到了相同的症状,因此我想分享自己的解决方案。当然,只要发问者没有提供更多细节,我们就不会知道我和他的原因是否相同。
问题原来是精度问题。正如解释这里在4.4节,对存储为花车整数做过测算仅达16 777 216的范围内是准确的。因此,如果样本中的公司数量超过16,777,216,则舍入误差将导致同一ID分配给多个公司。这可以通过将ID变量的精度提高到long来直接解决:
egen long newid = group(firmid)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句