楼主: ENJY
1151 2

[问答] SAS数据整合 同一个身份证号下 如果第一条的结束时间等于第二条的开始时间,则将两条 [推广有奖]

  • 1关注
  • 0粉丝

大专生

21%

还不是VIP/贵宾

-

威望
0
论坛币
643 个
通用积分
0.0089
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
495 点
帖子
15
精华
0
在线时间
53 小时
注册时间
2015-4-13
最后登录
2020-9-30

楼主
ENJY 发表于 2019-5-28 16:45:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
哪位大神会,现在还不懂循环,帮一下忙。同一个身份证号下 如果第一条的结束时间等于第二条的开始时间,则将两条合并,用第二条的结束时间替换第一条的结束时间,以此类推  :例如 {899E0B17-D0BD-4C76-AFD4-BC49FF2B5DFC}_20190528164322.jpg
二维码

扫码加我 拉你入群

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

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

关键词:SAS

沙发
whymath 发表于 2019-5-28 21:51:12
请提供样本数据。

藤椅
l1i2n3i4n5g 在职认证  发表于 2019-5-29 12:13:03
data test;
informat start end date9.;
format start end yymmdd10.;
input id $18. start end;
cards;
123456789123456789 '01jan2019'd '05jan2019'd
123456789123456789 '05jan2019'd '08jan2019'd
123456789123456789 '08jan2019'd '20jan2019'd
123456789123456777 '01jan2019'd '05jan2019'd
123456789123456777 '06jan2019'd '08jan2019'd
123456789123456777 '08jan2019'd '20jan2019'd
;
run;

data want;
   do i=1 to nobs;
      set test point=i nobs=nobs;
      do j=i+1 to nobs;
         set test(rename=(id=id1 start=start1 end=end1)) point=j;
         if id=id1 and end=start1 then do;
            end=end1;
            i+1;
         if j=nobs then output;
         end;
         else do;
            output;
            goto next;
         end;
      end;
      next:
   end;
   stop;
   drop id1 start1 end1;
run;

proc print;run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-17 20:03