Stata有没有现成的命令可以直接计算达到平均值的最早年份?
时间: 2024-11-18 13:16:45 浏览: 30
在Stata中,虽然没有现成的命令可以直接计算每个公司首次达到平均TFP的时间,但是可以通过结合使用`egen`命令和一些编程技巧间接实现。你可能需要创建一个自定义函数或者使用`forvalues`循环来逐个公司检查并记录首次达标年份。
以下是一个示例,使用`forvalues`循环来寻找每家公司首次达到或超过平均TFP的年份:
```stata
* 假设你的平均TFP已经存在local variable avg_tfp_15to17
foreach c of local company_ids { // 假设company_ids是一个包含了所有公司的列表
forval t = 2015(1)2017 {
replace years_to_average if company_id == `c' & year == `t' &
tfp >= `avg_tfp_15to17' & !missing(years_to_average)
}
drop if missing(years_to_average) // 删除未找到符合条件的公司
}
```
这段代码会遍历每个公司,从2015年开始向前搜索,直到找到第一个TFP大于或等于平均值的年份,然后将其赋值给`years_to_average`。注意,这里假设了`company_ids`是一个全局变量,包含了所有公司的ID,而`years_to_average`原本可能是缺失的,用于存储结果。
然而,这种方法可能会比较耗时,特别是对于大数据集。如果数据量非常大,建议考虑使用更高效的外部语言(如Python或R),结合Stata读取和写入数据的功能。
阅读全文