SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1057|回复: 3
打印 上一主题 下一主题

请问对日期格式的转化,以及一个时间序列转化

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2007-8-17 04:40:51 | 只看该作者

请问对日期格式的转化,以及一个时间序列转化

我现在的数据表中有2个column, 一个是起始日期,一个是结束日期,距离
id  start_date end_date
1011 09feb2007 15feb2007         《----这里正好是一周的整数倍
1011 12mar2007 17mar2007
...
...

1011 代表一个id, 这个id 对应很多observations, 每个obs代表一次事件,后面的start_date , end_date 就是该对应事件所开始到结束的时间
我现在面临的问题是要把上面数据表转化为:
id time event
1011 1 1
1011 2 0
1011 3 1
...
就是说,变成一个时间序列,time 列所对应的值是时间,我希望把原来的date 格式的时间转换作sas的数字形式的值(!!!),后面的event为逻辑值,代表
在对应时间段(该n 周)里面有没有事件发生。

我已经有一个思路,但是
所以首先需要把09feb2007 这种日期转化为数字!!!,希望各位帮忙!
此外,如果各位能在提出什么意见,我感激不尽!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2007-8-17 10:48:08 | 只看该作者

to kofsphere

转化成数字型的日期后就可以用SAS丰富的日期函数组合来得到你所要的结果。
[code:6daa2]data temp;
input id start_date:date9. end_date:date9.;
format start_date end_date yymmdd10.;
datalines;
1011 09feb2007 15feb2007
1011 12mar2007 17mar2007
;
run;[/code:6daa2]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2007-8-18 04:57:06 | 只看该作者

Re: 请问对日期格式的转化,以及一个时间序列转化

谢谢楼上的
但是情况稍有不同

我的数据是在一个数据表里面 其中一个var(就是date)是日期
所以我以下的codes:

date x1 ;
   set x1 ;
   format date mmddyy8. ;
   keep date ;
run ;

并没有效果,
请教!谢谢 我希望把01jan2007 变成sas value 比如13454 (虽然不是这个数字)
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2007-8-18 08:37:53 | 只看该作者

to kofsphere

其实我已经在上面写出来了,你只需要自己稍微变一下就行了。
看来你也需要找一本SAS培训教程“SAS Programming I: Essentials”来看看,加强一下基础能力,呵呵呵。
我又给你写了一段现成可以跑的,你再试试看
[code:a7675]data x1;
set x1(rename=(date=s_date));
length date 8;
date=input(s_date, date9.);
format date mmddyy8. ;
keep date;
run;[/code:a7675]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 07:10 , Processed in 0.066889 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表