楼主: tangliang0905
1218 1

想询问一下如何标记时间间隔的方法 [推广有奖]

  • 1关注
  • 3粉丝

讲师

52%

还不是VIP/贵宾

-

威望
0
论坛币
1137 个
通用积分
0.5583
学术水平
13 点
热心指数
20 点
信用等级
11 点
经验
30311 点
帖子
212
精华
0
在线时间
836 小时
注册时间
2012-11-29
最后登录
2024-7-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一组数据,
data test;
input id $ date mmddyy10.;
format date mmddyy10.;
cards;
1 1/1/2010
1 1/2/2010
1 1/5/2010
1 1/11/2010
1 1/22/2010
1 2/23/2010
1 2/25/2010
2 3/3/2010
2 3/19/2010
2 3/25/2010
;



现在我想要把每个id中从第一个日期算起,间隔小于10的日期都要标记出来,比如说第一个id 1的第一个日期是2010年1月1号,所以后面的1月2号,1月5号都要标记出来,比如说flag成1,1月11号间隔超过10天(大于等于10),22号也可以,2月23号也可以,2月25号就要标记出来。对于id 2来说,只有3月25号需要标记出来,因为他间隔前面的3月19号小于10。

我觉得困扰我的是,每个数据并不是直接跟上一个数据比较,而是跟上一个没有被标记出来的数据比较,所以想恳请大家帮忙,能不能指点一二。十分感谢
二维码

扫码加我 拉你入群

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

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

关键词:时间间隔 format FORMA Input cards 如何

沙发
tangliang0905 发表于 2015-3-6 14:32:41 |只看作者 |坛友微信交流群
我自己来抛砖引玉一把,看看有没有同学给我更好的方法。

data test;
input id $ date mmddyy10.;
format date mmddyy10.;
cards;
1 1/1/2010
1 1/2/2010
1 1/5/2010
1 1/11/2010
1 1/22/2010
1 1/27/2010
1 2/4/2010
1 2/23/2010
1 2/25/2010
2 3/3/2010
2 3/19/2010
2 3/25/2010
2 3/26/2010
2 3/27/2010
;
data want;
set test;
by id date;
format date1 date2 mmddyy10.;
retain date1 date2;
if first.id then do;
counter=0;
date1=.;
end;
if 0< date-date1<10 then flag=1;
else do;
date1=date;
date2=lag(date);
end;
run;

使用道具

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

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

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

GMT+8, 2024-11-5 20:34