还是举个例子吧data1.dta
date id amount
20180301 1 5
20180301 1 15
20180301 2 17
20180303 1 17
20180303 2 19
在做每天统计时,如果
bysort date:egen totalamt=total(amount)
bysort date:egen totalcnt=count(1)
得到的结果必然是
date totalcnt totalamt
20180301 3 37
20180303 2 36
由于原始数据中缺少20180302的数据所以结果中就没有该行
请问大神,有什么简单点的方法可以实现(一年中有好多天有这样的数据,而且业务也有这样的要求,需要展示)
date totalcnt totalamt
20180301 3 37
20180302 0 0
20180303 2 36
简单讲就是插入缺失日期
我想到的方法是,做一张全量的时间数据data2.dta从统计日期开始到结束
如
date
20180301
20180302
20180303
用data1 merge data2 的方法补充这一条,在统计记录totalcnt的时候小心一些不要出错就行
请问下各位大神,有简单点的方法么?按照我的方法,如果数据每天都有更新,我每天还需要做这个data2,想尽可能写成do文件,一步到位,减少手工步骤和出错概率。有没有办法譬如我猜的,定义个连续时间序列什么的,自动填充?或者有啥好办法么,谢谢各位了。


雷达卡




京公网安备 11010802022788号







