全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1031 2
2020-03-21
请教:我的数据是这样的:包括变量id,  两件事情的start 和 end 数据举例如下:
id                            start1              end1                   start2             end2
M001                    20170601       20190806            20170601       20190806
M001                    20170601       20190806            20170601      
M001                    20170601       20190806            20170601       20190806
M001                    20170601        20190806           20150601       20190806

M002                    20170904        20180309           20130601       20140806
M002                    20170904        20180309           20130601       20190806
M002                    20170904        20180309           20170904       20180309

M003                    20171214        20180420          20110601       20120806
M003                    20171214        20180420          20130601       20180420

M004                    20190913        20190925          20170601       20190806
M004                    20190913        20190925          20170601       20180806

M005                    20100321        20130321          20170601      
M005                    20100321        20130321          20170601       20190806
M005                    20100321        20130321          20170601       20190806

M006                    20110915        20190915          20170601       20190806
..........................................
现在需要统计,前后两个时间段的关系然后计数,希望能够输出以下数据;
后一个时间段的开始时间比前一个时间段开始时间要早的观测有0条的id数,本例为2(M006,M005)
后一个时间段的开始时间比前一个时间段开始时间要早的观测有1条的id数,本例为1(M001)
后一个时间段的开始时间比前一个时间段开始时间要早的观测有2条的id数,本例为3(M002,M003,M004)
后一个时间段的开始时间比前一个时间段开始时间要早的观测有3+条的id数,本例为0
后一个时间段和前一个时间段有重合0条观测的id数,本例为2(M005,M004)
后一个时间段和前一个时间段有重合1条观测的id数,本例为2(M006,M003)
后一个时间段和前一个时间段有重合2+条观测的id数,本例为2(M002,M001)


括号中的不用输出


可能语言组织不是那么清楚,谢谢大家帮忙了啊!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2020-3-22 11:02:01
顶一个啊!
二维码

扫码加我 拉你入群

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

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

2020-3-27 17:09:08
懒得写全了,你自己改改用吧
data test;
input id s1 e1 s2 e2;
if s2 < s1 then s2_s1 = 1;
else s2_s1 = 0;
cards;
1 1 2 0 1
1 1 2 0 1
1 1 2 0 1
1 1 2 2 3
2 3 5 2 8
2 3 5 2 8
2 3 5 6 8
3 3 5 9 8
;
proc sql;
select sum(s2_s1) as n, id
from test
group by id;
quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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