全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8745 6
2012-06-20
数据如下,
请问怎样计算这个时间变量Qtime的相邻两个交易的时间数据的时间间隔,

并且如果前后两笔交易的时间间隔低于30分钟(按交易时间计),把这两笔记录全部删除后导出数据?

==================

QTime
04JAN2005:09:25:04
04JAN2005:09:30:08
04JAN2005:09:30:32
04JAN2005:09:30:48
04JAN2005:09:30:56
04JAN2005:09:31:12
04JAN2005:09:31:20
04JAN2005:09:31:28
04JAN2005:09:31:36
04JAN2005:09:31:44
04JAN2005:09:31:52
04JAN2005:09:32:24
04JAN2005:09:32:40
04JAN2005:09:33:04
04JAN2005:09:33:12
04JAN2005:09:33:20
04JAN2005:09:33:28
04JAN2005:09:33:36
04JAN2005:09:33:44
04JAN2005:09:33:52
04JAN2005:09:34:00
... ...





二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-21 07:58:33
Use build-in function dif.

data tmp;
input QTime datetime19.;
tdif_in_s=dif(QTime);
tdif_in_m= tdif_in_s/60;
format QTime datetime.;
cards;
04JAN2005:09:25:04
04JAN2005:09:30:08
04JAN2005:09:30:32
04JAN2005:09:30:48
04JAN2005:09:30:56
04JAN2005:09:31:12
04JAN2005:09:31:20
04JAN2005:09:31:28
04JAN2005:09:31:36
04JAN2005:09:31:44
04JAN2005:09:31:52
04JAN2005:09:32:24
04JAN2005:09:32:40
04JAN2005:09:33:04
04JAN2005:09:33:12
04JAN2005:09:33:20
04JAN2005:09:33:28
04JAN2005:09:33:36
04JAN2005:09:33:44
04JAN2005:09:33:52
04JAN2005:09:34:00
;
proc print;run;
二维码

扫码加我 拉你入群

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

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

2012-6-21 08:06:09

data out;
set raw;
lag1=lag(qtime);
inter=intck('minute',lag1,qtime);
if inter>30;
run;

是不分ID做更好?
二维码

扫码加我 拉你入群

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

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

2012-6-21 10:56:17
webgu 发表于 2012-6-21 08:06
data out;
set raw;
lag1=lag(qtime);
楼主要求两笔记录都要删除

按此要求还得倒序排列,在lag一次,在inter=intck(''minute',lag(qtime)-qtmie

最终inter或inter1大于30都删除
二维码

扫码加我 拉你入群

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

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

2012-6-21 22:42:38
二维码

扫码加我 拉你入群

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

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

2012-6-21 23:17:48
thanks, good to know.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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