这篇在我草稿里放了很久,一直不想写,因为日期和画图不难,但很烦。
首先,我们为什么要转换日期?
数据中的日期只是个摆设时,转化日期不是必要的。 比如你不用画时间为横坐标的图或者回归与日期没有直接关系,当然不用转化日期(多一事不如少一事),或者直接把日期转化为数字类型也行,一般我们日期都是年月日,其实已经可以按大小排序了。
如果要画时间为横坐标的图或者利用时间序列搞事情时,才必须要转化日期。 比如画图,如果直接用数字类型的日期作为横坐标,就会出现问题,因为数字类型我们用的十进制,而日期一个月只有30天,一年只有12个月,所以你数字类型画出来的图就会有间隔,Stata又不知道你这个是按日期来的,这时候就必须转化日期。
日期转换
这里我只讲年月日和季度的转换,因为这两个是最常用的,当然Stata还有很多其他的转换和相应函数,比如通过日期推算周末,以及一年中的第几周之类的,但只要你转化为了日期,这些进一步推算也就很简单了,具体的你们可以要用的时候再去搜索。
- 规则字符串日期的转化
如果数据中的日期是规范的,如"20170309",则可以直接进行转换,使用函数date():
* 语法: gen 新变量名称 = date(被转换变量, 转换类型) *
g newdate = date("20170309", "YMD")