drop 历史评级 dropifmi(newvar) split newvar, parse(,) drop newvar gen date = date(newvar1, "YMD") format date %tdCY-N-D drop newvar1 n ren date 评级日期 ren newvar2 评级 append using data drop 历史评级 destring 序号, replace gsort 万得代码 评级日期
*- 查看所有可能的评级 dropifmi(序号) codebook 评级
gen 评级num = 1 if 评级 == "CCC" replace 评级num = 2 if 评级 == "B" replace 评级num = 3 if 评级 == "BB" replace 评级num = 4 if 评级 == "BBB" replace 评级num = 5 if 评级 == "A" replace 评级num = 6 if 评级 == "AA" replace 评级num = 7 if 评级 == "AAA"
label define pj 1 "CCC" 2 "B" 3 "BB" 4 "BBB" 5 "A" 6 "AA" 7 "AAA", replace label val 评级num pj save data3, replace
不过有些公司在某一年中可能有多个评级结果,因此我们可以使用两种方法把这个数据汇总成面板数据:
分公司保存每年的最后一次评级:
use data3, clear gen 评级年份 = yofd(评级日期) bysort 万得代码 评级年份 (评级日期): keepif _n == _N drop 评级日期
save"2018~2023年上市公司ESG评级面板数据(版本1)", replace
这就是 版本1 的结果。
分公司保留每年最高的评级结果:
use data3, clear gen 评级年份 = yofd(评级日期) bysort 万得代码 评级年份 (评级num): keepif _n == _N
评论