我在Stata中有一个面板数据集,其中包含两年内261名雇主的工资单数据。每个机构都有一个唯一的ID变量,每个员工也是如此。每行数据都是一个支付期。我试图弄清楚如何计算每个机构的员工人数。我很容易使用by employee: gen pp_id = _n
计算每位员工的工资期数,但这不适用于计算代理机构内的员工。
我已尝试使用egen employeecount = count(employee), by(agency)
,但这似乎会增加员工ID的价值而不是计算数量(因此,员工5,15和20的代理机构会有employeecount 40而不是3)。
有解决方案吗?还有另外一种方法我应该接近这个吗?谢谢!
答案 0 :(得分:2)
尝试
egen employeecount = nvals(employee), by(agency)
获取代理机构内员工的不同值的数量。这在help egenmore
下记录,您必须安装。
答案 1 :(得分:2)
http://www.stata-journal.com/sjpdf.html?articlenum=dm0042
在Stata对此地区进行了审核@Dimitriy V.Masterov推荐的很好,但你可以分两步完成,而无需额外安装任何东西。
egen tag = tag(employee agency)
egen employeecount = total(tag), by(agency)
对于这里发生的事情以及其他许多内容,引用的论文给出了完整的故事。