楼主: 小鳄鱼a
276 1

求助个问题 [推广有奖]

  • 6关注
  • 10粉丝

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

200论坛币
希望有简洁一些的代码   thanks

example.xlsx

11.27 KB

最佳答案

Tigflanker 查看完整内容

最后那条你自己再设置删除一下就ok
关键词:thanks Thank Than Hank tha
沙发
Tigflanker 发表于 2015-11-24 20:56:50 |只看作者 |坛友微信交流群
  1. data have;
  2.   input id stk year qtr va;
  3.   year_qtr = year * 4 + qtr;
  4.   cards;
  5. 1        2        1996        3        18
  6. 1        2        1996        4        15
  7. 1        2        1997        1        15
  8. 1        2        1998        2        20
  9. 1        2        1998        4        20
  10. 1        5        1997        1        15
  11. 1        5        1999        1        12
  12. 1        5        1999        2        10
  13. 1        5        1999        3        9
  14. ;run;

  15. proc sort data = have out = isy nodupkey;
  16.   by id stk year;
  17. run;

  18. data full(drop = va1: this pre);
  19.   if 0 then set have(rename=va=va1);
  20.   if _n_ = 1 then do;
  21.     dcl hash h(dataset:'have(rename=va=va1)');
  22.         h.definekey('id','stk','year_qtr');
  23.         h.definedata('va1');
  24.         h.definedone();
  25.   end;

  26.   set isy(keep = id stk year);
  27.   do qtr = 1 to 4;
  28.     year_qtr = year * 4 + qtr;
  29.     this = ~h.find();
  30.         va1_this = va1;
  31.         pre  = ~h.find(key:id, key:stk, key:year_qtr - 1);
  32.         va1_pre = va1;

  33.         select(cats(this,pre));
  34.       when('11') do;va = va1_this - va1_pre;output;end;
  35.       when('10') do;va = va1_this;          output;end;
  36.       when('01') do;va =          - va1_pre;output;end;
  37.           otherwise;
  38.         end;
  39.   end;
  40. run;

  41. proc sort;
  42.   by id stk year_qtr;
  43. run;
复制代码
最后那条你自己再设置删除一下就ok
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
sniperhgy + 5 + 5 + 5 + 5 hash表运用的水平越来越高了^_^

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

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 15:53