我正在使用包含日期变量的数据集,格式为MMDDYY10 .. 问题是,交换了日,月和年。
现在看来的数据集:
Obs Date
1 11/01/1931
2 11/06/1930
3 12/02/2003
4 12/07/2018
我想要的是格式为DDMMYY10。或类似的日期变量:
Obs Date
1 31/01/2011
2 30/06/2011
3 03/02/2012
4 18/07/2012
观察1因此写成1931年11月1日,但实际上是2011年1月31日。
有谁知道我怎么能改变这个?
答案 0 :(得分:1)
看起来您使用错误的INFORMAT读取原始原始数据。您很可能拥有YYMMDD格式的数据,并将其读作MMDDYY。您可以使用PUT()和INPUT()函数尝试将其反转。
data have ;
input date mmddyy10.;
newdate = input(put(date,mmddyy6.),yymmdd6.);
format date newdate yymmdd10. ;
put (date newdate) (=);
cards;
11/01/1931
11/06/1930
12/02/2003
12/07/2018
;;;;
结果:
date=1931-11-01 newdate=2011-01-31
date=1930-11-06 newdate=2011-06-30
date=2003-12-02 newdate=2012-02-03
date=2018-12-07 newdate=2012-07-18