全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1612 4
2018-08-31
悬赏 1 个论坛币 已解决
求助大神们,我有一组数据,每个ID有几个不同的日期date,我会算相邻两个date的天数差值interval,但是不知道怎么算相邻两个interval之间的和sum, 还有怎么算每个ID最后一个date和第一个date的天值差值end。


obs  id  date             interval   sum       end

1     a1 04/07/2013  0           0
2     a1 04/04/2013  91         91
3     a1 22/02/2013  41         132        132
4     a2 23/02/2016  0           0
5     a2 28/07/2015  210       210
6     a2 06/07/2015  22         232         232
7     a3 20/07/2015  0           0            
8     a3 11/06/2015  39         39           
9     a3 30/03/2015  73         112
10   a3 26/01/2015  63         136
11   a3 05/12/2014  52         115         227

最佳答案

l1i2n3i4n5g 查看完整内容

data test(keep=id date interval); format date yymmdd10.; infile cards missover; input obs $ id $ date :ddmmyy10. interval sum end; cards; 1 a1 04/07/2013 0 0 2 a1 04/04/2013 91 91 3 a1 22/02/2013 41 132 132 4 a2 23/02/2016 0 0 5 a2 28/07/2015 210 210 6 a2 06/07/2015 22 232 232 7 a3 20/07/2015 0 0 8 a3 11/06/2015 39 39 9 a3 30/03/2015 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2018-8-31 00:35:09
data test(keep=id date interval);
format date yymmdd10.;
infile cards missover;
  input
obs $ id $ date :ddmmyy10. interval sum end;
cards;
1   a1 04/07/2013  0   0
2   a1 04/04/2013  91   91
3   a1 22/02/2013  41   132   132
4   a2 23/02/2016  0   0
5   a2 28/07/2015  210   210
6   a2 06/07/2015  22   232   232
7   a3 20/07/2015  0   0
8   a3 11/06/2015  39   39
9   a3 30/03/2015  73   112
10   a3 26/01/2015  63   136
11   a3 05/12/2014  52   115   227
;
run;

data want;
   retain first_sum;
   set test;
   by id;
   lag_interval=lag(interval);
   if first.id then do;
      sum=interval;
      first_sum=sum;
   end;
   else sum=lag_interval+interval;
   if last.id then end=sum-first_sum;
   drop lag_interval first_sum;
run;
proc print;
run;
二维码

扫码加我 拉你入群

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

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

2018-8-31 21:52:47
l1i2n3i4n5g 发表于 2018-8-31 00:35
data test(keep=id date interval);
format date yymmdd10.;
infile cards missover;
谢谢大神。再问一下,怎么生成一个变量,值为每个ID的第一DATE。
二维码

扫码加我 拉你入群

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

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

2018-8-31 22:01:42
woshimtt 发表于 2018-8-31 21:52
谢谢大神。再问一下,怎么生成一个变量,值为每个ID的第一DATE。
我自己搞定了。谢谢
二维码

扫码加我 拉你入群

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

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

2018-8-31 22:02:09
woshimtt 发表于 2018-8-31 21:52
谢谢大神。再问一下,怎么生成一个变量,值为每个ID的第一DATE。
我自己搞定了,哈哈哈哈。谢谢谢谢。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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