楼主: 风zi
342 5

[问答] 求大神,如何计算同一ID的两个日期差 [推广有奖]

  • 2关注
  • 0粉丝

大专生

11%

还不是VIP/贵宾

-

威望
0
论坛币
79 个
学术水平
6 点
热心指数
5 点
信用等级
5 点
经验
4413 点
帖子
39
精华
0
在线时间
35 小时
注册时间
2016-3-5
最后登录
2017-12-6

风zi 发表于 2017-10-12 13:22:54 |显示全部楼层
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

最佳答案

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; ...
关键词:stata sas 日期计算
支持楼主:购买VIP购买贵宾 购买后,论坛将奖励 10 元论坛资金给楼主,以表示您对TA发好贴的支持
 
载入中......
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
8112mmw + 5 + 5 + 5 + 5 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

stata SPSS
l1i2n3i4n5g 在职认证  发表于 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;
回复

使用道具 举报

风zi 发表于 2017-10-12 20:36:31 |显示全部楼层
我自己用excel已经做出来了,counif的条件少设置点就能运行40多万条了,先暂时凑合用吧
回复

使用道具 举报

fdg546456gfh4gf 发表于 2017-10-13 01:21:46 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

风zi 发表于 2017-10-13 22:50:39 |显示全部楼层
l1i2n3i4n5g 发表于 2017-10-12 13:22
data test;
input ID $ (DATE1 DATE2) (: yymmdd10.);
format DATE1 DATE2 yymmdd10.;
太感谢啦!!!谢谢大神!
回复

使用道具 举报

8112mmw 发表于 2017-10-15 08:40:02 |显示全部楼层
本帖最后由 8112mmw 于 2017-10-15 08:42 编辑
l1i2n3i4n5g 发表于 2017-10-12 13:22
data test;
input ID $ (DATE1 DATE2) (: yymmdd10.);
format DATE1 DATE2 yymmdd10.;
楼主利用了lag函数解决此事,果然厉害啊!
回复

使用道具 举报

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

GMT+8, 2017-12-14 12:28