楼主: lizziezeng
1794 2

[求助]急~!如何增加一个A变量,存储的数据是B变量的下一个值-上一个值 [推广有奖]

  • 0关注
  • 0粉丝

本科生

6%

还不是VIP/贵宾

-

威望
0
论坛币
360 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
878 点
帖子
53
精华
0
在线时间
54 小时
注册时间
2008-8-2
最后登录
2017-6-18

楼主
lizziezeng 发表于 2009-5-7 20:17:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

[求助]急~!如何增加一个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

二维码

扫码加我 拉你入群

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

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

关键词:null Ulla 时间间隔 数据结果 在线等 数据 变量

回帖推荐

luijb 发表于2楼  查看完整内容

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    10A       2    2009.4.3    20B       1    2009.4.2    20B   &nbs ...

本帖被以下文库推荐

沙发
luijb 在职认证  发表于 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;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

西格玛临床统计服务工作室http://www.sigma-stat.com/,luijb@163.com

藤椅
xuwei2007 发表于 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;

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

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