You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata面板数据中按机构统计员工人数的技术咨询

解决Stata中统计机构内员工数量的问题

你遇到的问题其实很常见——因为你的数据每行对应发薪周期,同一个员工会在所属机构下重复出现多次,直接用egen count(employee), by(agency)统计的是该机构的总发薪周期行数,而非不重复的员工数量。下面给你两种靠谱的解决方法:

方法1:用distinct命令(Stata 13及以上版本适用)

这是最直接的方式,distinct函数可以直接统计分组内不重复的观测值数量:

egen employeecount = distinct(employee), by(agency)

这条命令会在每个机构组内,自动统计不重复的employeeID数量,完美得到你要的员工总数。

方法2:标记员工首次出现后求和(兼容所有Stata版本)

如果你的Stata版本较低不支持distinct,可以先标记每个员工在所属机构中的首次出现,再通过求和得到员工数:

  1. 先按机构+员工排序,标记每个员工的第一行数据:
bysort agency employee: gen first_occurrence = (_n == 1)

这里first_occurrence变量在每个员工的第一行取值为1,其余行取值为0。
2. 然后按机构对这个标记变量求和,得到该机构的员工总数:

egen employeecount = sum(first_occurrence), by(agency)

额外提醒

要确保你的数据中,每个employeeID只对应一个agency(即员工不会跨机构任职)。如果存在员工跨机构的情况,你需要先明确统计逻辑:是按员工当前所属机构统计,还是按发薪周期对应的机构分别统计,再调整上述命令。

内容的提问来源于stack exchange,提问作者mimirose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:07:41