全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1453 6
2012-11-30
我想创建一个新的变量ID,用来将日期分成weekly的,不是普通意义的week,而是周三到下个周二算为一周。所以ID变量将是重复少于7次的1,2,3......(因为有些日子没有)。例如,第一个周三到第一个周二这几天对应的ID是1,然后接下来的周三到下一个周二这几天对应的ID是2。全部需要标注的日期值在附件中的excel里
Book1.xlsx
大小:(60.06 KB)

 马上下载

。我看第一个日期是星期二,所以大家就不用管它。期待高人帮助。谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-30 11:15:52
复制代码
二维码

扫码加我 拉你入群

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

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

2012-11-30 15:49:01
moyunzheng 发表于 2012-11-30 11:15
十分感谢,moyunzheng!我在所有的日期上run了,成功!能请你指教一下从retain开始的那些code的功能吗?先谢谢了!
二维码

扫码加我 拉你入群

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

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

2012-12-3 13:35:52
ivylee_777 发表于 2012-11-30 15:49
十分感谢,moyunzheng!我在所有的日期上run了,成功!能请你指教一下从retain开始的那些code的功能吗?先 ...
retain id;
存在set,merge,update等语句时,每次从数据源读入一条观测时,PDV中的变量会被重置为缺失。
Retain的作用就是保留这个id变量的值不被重围为缺失。

if weekday(date)=4 then id=sum(id,1);
weekday()的求变量date的星期几值,结果是1~7,规定1代表周日.
结合retain语句,每遇到周三时,id的值自动加1。如果不是周三,那么id值不变

之所以用id=sum(id,1),而不是id=id+1,是因为
sum(.,1)=1 但是 .+1=.
另外,不需要第一个周三前面的,所以我把id的初始值为缺失而不是0或者1

下面的语句经常会被使用,结果与上面的会有些不同,第一个周三前面的id为0
复制代码
二维码

扫码加我 拉你入群

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

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

2012-12-3 13:36:51
ivylee_777 发表于 2012-11-30 15:49
十分感谢,moyunzheng!我在所有的日期上run了,成功!能请你指教一下从retain开始的那些code的功能吗?先 ...
我是假设你的时间都是连续不会出现隔断的。如果有隔断的话,上面的语句都不会正确。
二维码

扫码加我 拉你入群

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

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

2012-12-3 14:08:19
moyunzheng 发表于 2012-12-3 13:36
我是假设你的时间都是连续不会出现隔断的。如果有隔断的话,上面的语句都不会正确。
谢谢回复!我的数据有可能有缺失周三的,但是我不确定。除了一个一个对照日例外,请问SAS有办法探测到缺失的周三吗?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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