全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12761 3
2013-07-04
用户有A、B两个事件,现在的数据中有每个用户做这两个事件的明细开始时间及结束时间。
我想以A事件为基础表,如果用户在A事件过程中,出现了做B事件的情况,则把同时做两件事件的时间进行统计。
如:

A事件:
IDastimeaftime

1

2013/5/1 10:00:00

2013/5/1 11:00:00

1

2013/5/1 12:00:00

2013/5/1 16:00:00

1

2013/5/1 17:00:00

2013/5/1 19:00:00

1

2013/5/1 21:00:00

2013/5/1 23:00:00



B事件:
IDbstimebftime

1

2013/5/1 15:00:00

2013/5/1 20:00:00

1

2013/5/1 21:00:00

2013/5/1 22:00:00

1

2013/5/1 22:01:00

2013/5/1 22:11:00


输出结果:
IDastimeaftime time

1

2013/5/1 10:00:00

2013/5/1 11:00:00

0

1

2013/5/1 12:00:00

2013/5/1 16:00:00

3600

1

2013/5/1 17:00:00

2013/5/1 19:00:00

7200

1

2013/5/1 21:00:00

2013/5/1 23:00:00

4200


第一行数据无重合时间段,为0
第二数据,重合时间段为2013/5/1 15:00:00-2013/5/1 16:00:00 共计3600秒
……


二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-4 17:42:05
data wanted;
   set a;
   time=0;
    do _n_=1 to nobs;
      set b nobs=nobs point=_n_;
          if astime<=bstime<=aftime or bstime<=astime<=bftime
              then time=time+(min(aftime,bftime)-max(astime,bstime));
        end;
        drop bstime bftime;
run;
二维码

扫码加我 拉你入群

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

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

2015-4-16 21:57:06
pobel 发表于 2013-7-4 17:42
data wanted;
   set a;
   time=0;
请问大神, 一定要用 _n_这个变量名么. 这个是系统自动生成的变量名, 用着好奇怪...尤其是还给他赋值. 随便用个变量名不行么?
二维码

扫码加我 拉你入群

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

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

2015-4-17 07:42:42
吕小布韦 发表于 2015-4-16 21:57
请问大神, 一定要用 _n_这个变量名么. 这个是系统自动生成的变量名, 用着好奇怪...尤其是还给他赋值. 随便 ...
随便用一个变量名就可以
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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