全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
908 6
2018-03-19
还是举个例子吧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文件,一步到位,减少手工步骤和出错概率。有没有办法譬如我猜的,定义个连续时间序列什么的,自动填充?或者有啥好办法么,谢谢各位了。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-3-19 12:50:41
1、看看下面帖子,学习怎么提问
https://bbs.pinggu.org/thread-272681-1-1.html
https://bbs.pinggu.org/thread-5048204-1-1.html, 与
https://bbs.pinggu.org/thread-5917273-1-1.html

2、先执行下面命令安装dataex命令:  ssc install dataex。
3、用 dataex 命令,可以从你使用的数据中随机抽取一部分数据,
这样提供的数据就是你使用的有”代表性”的数据,别人才容易回答,
4、同时,列出你所使用的命令和结果。 别人才能好判断和修正
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-3-19 13:33:30
恩恩,感谢楼上提醒啊,我改改
复制代码

复制代码


结果如下
复制代码


想获得的数据
复制代码


简单讲就是得在原来的统计结果中插入空缺的日期,谢谢各位了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-3-19 13:45:27
蓝色 发表于 2018-3-19 12:50
1、看看下面帖子,学习怎么提问
https://bbs.pinggu.org/thread-272681-1-1.html
https://bbs.pinggu.org/t ...
恩恩,感谢提醒啊,学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-3-19 13:57:24
我暂时想到的做法
生成一个data2
复制代码

复制代码


然后在原数据data1中
复制代码


该做法虽然可以解决问题,但如果每天需要出这样的数据的话,每天都得更新这个data2以确保区间长度正确,是否有减少人工处理的方法,以减少差错,感谢感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-3-19 14:47:33
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群