全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1558 5
2017-10-12
悬赏 10 个论坛币 已解决
ID        DATE1        DATE2
0001        2014/4/5        2014/4/22
0001        2015/2/11        2015/2/20
0002        2015/5/9        2015/5/17
0002        2015/6/2        2015/6/12
0002        2015/6/16        2015/6/20
0003        2015/7/6        2015/7/9
0003        2015/7/18        2015/7/23
0003        2015/11/232015/12/1
0004        2015/12/1        2015/12/7
0004        2015/12/202015/12/30
0005        2014/8/15        2014/8/16
数据如上,想要生成一个新变量day,使相同ID内date1的下一个日期减去date2的上一个日期,即相同ID内,date1的B2-date2的C1,B4-C3,B5-C4,B7-C6,B8-C7,B10-C9;excel的公式虽然可以计算,但因为数据有几十万条,无法运行,希望sas/stata大神能帮帮忙,拜托了  
example.xlsx
大小:(9.44 KB)

 马上下载

D24(W`]GR_SYR1K7F(3SD`0.png

原图尺寸 12.94 KB

D24(W`]GR_SYR1K7F(3SD`0.png

最佳答案

l1i2n3i4n5g 查看完整内容

data test; input ID $ (DATE1 DATE2) (: yymmdd10.); format DATE1 DATE2 yymmdd10.; cards; 0001 2014/4/5 2014/4/22 0001 2015/2/11 2015/2/20 0002 2015/5/9 2015/5/17 0002 2015/6/2 2015/6/12 0002 2015/6/16 2015/6/20 0003 2015/7/6 2015/7/9 0003 2015/7/18 2015/7/23 0003 2015/11/23 2015/12/1 0004 2015/12/1 2015/12/7 0004 2015/12/20 2015/12/30 0005 2014/8/15 2014/8/16 ; run; data test1; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2017-10-12 13:22:55
data test;
input ID $ (DATE1 DATE2) (: yymmdd10.);
format DATE1 DATE2 yymmdd10.;
cards;
0001 2014/4/5 2014/4/22
0001 2015/2/11 2015/2/20
0002 2015/5/9 2015/5/17
0002 2015/6/2 2015/6/12
0002 2015/6/16 2015/6/20
0003 2015/7/6 2015/7/9
0003 2015/7/18 2015/7/23
0003 2015/11/23 2015/12/1
0004 2015/12/1 2015/12/7
0004 2015/12/20 2015/12/30
0005 2014/8/15 2014/8/16
;
run;

data test1;
   set test;
   by id;
   date2=lag(date2);
   if first.id=0 then day=date1-date2;
run;
二维码

扫码加我 拉你入群

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

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

2017-10-12 20:36:31
我自己用excel已经做出来了,counif的条件少设置点就能运行40多万条了,先暂时凑合用吧
二维码

扫码加我 拉你入群

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

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

2017-10-13 01:21:46
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

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

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

2017-10-13 22:50:39
l1i2n3i4n5g 发表于 2017-10-12 13:22
data test;
input ID $ (DATE1 DATE2) (: yymmdd10.);
format DATE1 DATE2 yymmdd10.;
太感谢啦!!!谢谢大神!
二维码

扫码加我 拉你入群

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

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

2017-10-15 08:40:02
l1i2n3i4n5g 发表于 2017-10-12 13:22
data test;
input ID $ (DATE1 DATE2) (: yymmdd10.);
format DATE1 DATE2 yymmdd10.;
楼主利用了lag函数解决此事,果然厉害啊!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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