各位大佬们好!遇到了难题来求助一下!
我的数据如下(完整数据在附件里):
stkcd rptdt fenddt ananmid ananm reportid feps
000001 16dec2019 2019-12-31 30000000000000088632,30438664 邹恒超,栾天悦 13522616 1.49
000001 13jan2020 2019-12-31 30000000000000088632,30438664 邹恒超,栾天悦 14362086 1.45
000001 14jan2020 2019-12-31 30000000000000092889,30434917 戴志锋,邓美君 14367224 1.41
000001 14feb2020 2019-12-31 30000000000000092889,30434917 戴志锋,邓美君 14656799 1.41
000001 14jan2020 2019-12-31 30000000000000168969,30376789 傅慧芳,陈绍兴 14362637 1.54
000001 14jan2020 2019-12-31 30000000000000181394,30357643,30440118 肖斐斐,冉宇航,彭博 14374692 1.41
000001 14feb2020 2019-12-31 30000000000000181394,30357643,30440118 肖斐斐,冉宇航,彭博 14659565 1.41
000001 14jan2020 2019-12-31 30243281,30000000000000160926 倪军,屈俊 14367244 1.54
000001 14jan2020 2019-12-31 30253262 杨仁文 14383082
000001 25dec2019 2019-12-31 30259292 唐子佩 13712682 1.62
000001 14jan2020 2019-12-31 30288942 沈娟 14390363 1.45
000001 14jan2020 2019-12-31 30292624,30431428,30355057 王剑,陈俊良,李锦儿 14384074 1.42
000001 14jan2020 2019-12-31 30324619 廖志明 14367234 1.45
stkcd是证券代码,rptdt是分析师发布预测的日期, fenddt是分析师预测的会计年度,ananmid是分析师的编号 ananm是分析师的名字 reportid是分析师预测报告的编号 feps是分析师的预测值。举例来说,第一行数据就表明,编号为30000000000000088632,30438664的这个分析师团队(ananmid里面没有用","隔开表明是该预测是一个分析师做的,用“,”隔开表明该预测是多个分析师做的)在2019年12月16日时发布了对证券代码为000001的上市公司在2019年这个会计年度(fenddt="2019-12-31")的eps预测。
我的毕业论文需要我计算分析师的一致预测,这个一致预测我下的定义是,分析师某次预测报告发布的前30天内(-1,-30)除该分析师外的所有分析师的预测均值,如果在那30天内某个分析师发布了多次预测,就取它最新一次预测来算。目前我想到的方法是用rangestat来做,命令是rangestat (mean) feps,interval(rptdt -30 -1) excludeself by(stkcd fenddt)。这个方法有两个问题我不知道怎么解决:1.它没有取分析师过去三十天最新一次的预测值 2.在之前的30天的期间内,也没有排除该分析师的预测数据。
完整数据链接:
这个问题想了好几天了,也再尝试用循环做,但总是卡着想不出来,黔驴技穷,向各位大佬求助!