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

如何计算董事加入新公司前的过往薪酬均值(Stata实现)

计算董事入职新公司前的过往薪酬均值(Stata实现)

需求说明

  • 针对每位董事的每一家任职公司,计算其入职该公司年份之前所有任职经历的薪酬均值,需排除入职当前公司及之后的薪酬数据
  • 数据集包含字段:director_id、firm_id、enter、year、wage

测试数据

clear

input enter year wage director_id firm_id
2006 2006 6.4790964 1 1
2006 2010 6.4783854 1 1
2006 2011 6.4067149 1 1
2006 2012 6.3716507 1 1
2006 2013 6.2248578 1 1
2006 2014 6.0631728 1 1
2011 2011 5.0127039 1 2
2011 2012 4.9616795 1 2
2011 2013 4.9483747 1 2
2011 2014 5.2612371 1 2
2012 2012 4.5389338 1 3
2012 2013 4.4322848 1 3
2012 2014 4.3223209 1 3
2013 2013 4.336947 1 4
2013 2014 4.27459 1 4
2015 2015 -.60586482 1 5
2015 2016 .085194588 1 5
end

实现步骤与代码

1. 提取唯一入职年份

针对每位董事的每家公司,生成唯一入职年份字段,避免重复计算:

bysort director_id firm_id: gen enter_unique = enter[1]

2. 计算过往薪酬均值

按董事ID和入职年份排序后,计算当前公司入职年份之前的所有薪酬均值:

sort director_id enter_unique year

bysort director_id (enter_unique): gen prior_wage_mean = ///
    cond(_n == 1, ., mean(wage) if year < enter_unique[_n])

3. 匹配回原始数据集

将计算结果统一匹配到该董事-公司组合的所有记录:

bysort director_id firm_id: replace prior_wage_mean = prior_wage_mean[1]

4. 验证结果(可选)

查看董事ID=1的计算结果,确认逻辑正确性:

list director_id firm_id enter prior_wage_mean if director_id == 1, clean

结果说明

以director_id=1为例:

  • 入职第1家公司(2006年)时无过往任职经历,prior_wage_mean为缺失值
  • 入职第2家公司(2011年)时,均值为2006-2010年在第1家公司的薪酬均值
  • 后续公司的均值均为入职年份之前所有符合条件的薪酬平均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:15:48