全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
16708 8
2012-09-17
我的问题是原始的数据库里有一个Date变量,为11.的数值型,形如20120304
我想把它变为日期型,如yymmdd10.,形如2012-03-04

坛子里有这样的问题,链接如下:
https://bbs.pinggu.org/thread-539216-1-1.html

这个贴子里jingju的回答如下所示:
data new;
input date yymmdd8.;
format date date.;
datalines;
20010101
20020305
;
run;

但问题是我这里的数据库是现成的,不是用data步生成的,也就是说初始的date变量没有按yymmdd8. input进去,也即把上面的代码改成如下之后,会出现错误
data new;
input date 11.;
format date date.;
datalines;
20010101
20020305
;
run;

请问该如何解决这个问题,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-9-17 13:43:56
上面可能没有把问题说清,简单来说就是数值型的20120305,意义为2012年3月5号
但是在SAS中同样的日期的数值型表示为18034之类的数值
我的问题是如何把数值型的日期20120305转换成SAS内部的18034数值型日期,以用于以后的日期函数操作

我现在的办法是先把数值型的20120305转换为字符型的
再用input转为数值型的,且规定informat为yymmdd8.
这样虽能解决问题,但是显得比较麻烦
求更简单的方法,谢谢!
二维码

扫码加我 拉你入群

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

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

2012-9-17 13:48:25
这样?

data new;
input date 11.;
date_1=mdy(mod(int(date/100),100),mod(date,100),int(date/10000));
format date_1 yymmdd10.;
put date_1 yymmdd10.;
datalines;
20010101
20020305
;
run;
二维码

扫码加我 拉你入群

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

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

2012-9-17 16:19:42
pobel 发表于 2012-9-17 13:48
这样?

data new;
嗯,这个办法好
多谢了
二维码

扫码加我 拉你入群

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

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

2013-2-26 02:28:35
pobel 发表于 2012-9-17 13:48
这样?

data new;
大神好解答,学习了:)
二维码

扫码加我 拉你入群

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

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

2013-5-23 13:40:00
太牛了,解决了大问题。谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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