全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1747 2
2009-05-07

[求助]急~!如何增加一个A变量,存储的数据是B变量的下一个值-上一个值 ,哪位大虾晓得,麻烦指点一下,在线等,谢谢~!

问题如下:

ID      序号   日期   金额

A       1       2009.4.1    10

A        2      2009.4.3     20

B        1     2009.4.2      20

B        2     2009.4.5       30

B        4      2009.4.9       50      增加一个变量,计算 当ID相同是,下一行日期-上一行日期,期望数据结果如下:

ID      序号   日期   金额           时间间隔

A       1       2009.4.1    10        null

A        2      2009.4.3     20         2

B        1     2009.4.2      20       null

B        2     2009.4.5       30       3

B        4      2009.4.9       50       4

二维码

扫码加我 拉你入群

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

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

全部回复
2009-5-8 09:22:00

data raw(drop=rq1);
format rq mmddyy8.;
input id$ bh rq1 $ je;
rq=mdy(scan(rq1,2,.),scan(rq1,3,.),scan(rq1,1,.));
cards;
A       1    2009.4.1    10
A       2    2009.4.3    20
B       1    2009.4.2    20
B       2    2009.4.5    30
B       4    2009.4.9    50
;
run;

proc sort data=raw;
by id;
data result(drop=rq1);
set raw;
by id;
rq1=lag(rq);
if first.id then rq1=.;
rqdif=rq-rq1;
run;

二维码

扫码加我 拉你入群

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

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

2009-5-8 11:33:00

data a;
   input id $  n date yymmdd8. sale @@;
cards;
A 1 20090401 10
A 2 20090403 20
B 1 20090402 20
B 2 20090405 30
B 4 20090409 50
;
run;

proc sort data=a out=b;
   by id n;
   run;

data c (drop=d);
  set b;
  by id n;
  d=lag(date);
  timedif=put(dif(date),4.);
  if first.id then timedif='null';
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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