楼主: 冰川断层
10609 15

SAS怎么把‘2011-01-2’格式的日期转换成02JAN2012 [推广有奖]

11
l1i2n3i4n5g 在职认证  发表于 2016-10-27 22:48:52 |只看作者 |坛友微信交流群
冰川断层 发表于 2016-10-27 17:01
数据,这是原数据,不知道你能不能打开。。。日期都是年份 像1980这样,我给你截啦个图;
year本来就是best12.格式,year2和year本质上是一样的。
format year2 date.;
把year2看成是距离1960年1月1日后的第year2(1980)天了,也就是1965年的某一天
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

12
冰川断层 发表于 2016-10-28 20:18:02 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2016-10-27 22:48
year本来就是best12.格式,year2和year本质上是一样的。
format year2 date.;
把year2看成是距离1960年 ...
那我先转换成字符,再按年读取,也不对啊,
data coal2;
set coal;
year1=put(year,best.);
year2=input(year1,year4.);
run;
怎么办,怎么办???

使用道具

13
l1i2n3i4n5g 在职认证  发表于 2016-10-29 23:52:44 |只看作者 |坛友微信交流群
冰川断层 发表于 2016-10-28 20:18
那我先转换成字符,再按年读取,也不对啊,
data coal2;
set coal;
year已经是你想要的结果了吧

使用道具

14
冰川断层 发表于 2016-11-1 11:28:47 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2016-10-29 23:52
year已经是你想要的结果了吧
不是的,year只是普通的数值型,不是按年的日期形式,所以做指数平滑的时候,没有办法设置间隔interval=year   ,会提示错误的,估计SAS不知道他是按年的,
在最前面的帖子里,我把指数平滑的代码也一并贴过去啦。

转换成字符型只是我的一个想法,但没有实现,不知道你还有没有更好的建议。。

使用道具

15
jihoufeng 发表于 2017-8-10 20:52:54 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2016-10-11 00:22
data _NULL_;
a='2011-01-01';
b=input(a,yymmdd10.);
谢谢大神!!您太棒啦!!!

使用道具

16
ymf023 发表于 2017-8-12 12:51:11 |只看作者 |坛友微信交流群
put(mdy(substr(a,5,2),substr(a,7,2),substr(a,1,4)),date9.)
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 19:27