请选择 进入手机版 | 继续访问电脑版
楼主: gaotao0727
2164 2

[问答] 数据集变量值编号问题 [推广有奖]

  • 1关注
  • 10粉丝

副教授

79%

还不是VIP/贵宾

-

威望
0
论坛币
540 个
通用积分
11.2790
学术水平
18 点
热心指数
18 点
信用等级
12 点
经验
27715 点
帖子
873
精华
0
在线时间
855 小时
注册时间
2011-8-8
最后登录
2023-3-1

gaotao0727 发表于 2018-8-10 10:42:05 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. data test;
  2.   input apply_no $ no;
  3.   cards;
  4. 01 1
  5. 01 2
  6. 01 3
  7. 01 0
  8. 01 1
  9. 01 2
  10. 01 3
  11. 01 1
  12. 01 2
  13. 02 0
  14. 02 1
  15. 02 2
  16. ;
  17. run;
复制代码
如上是数据集,每个appl_no中第一个一起出现的1,2,3...对应赋值为1,下一个一起出现的1,2,3...对应赋值为2,以此类推
希望得到的结果是:
  1. 01 1 1
  2. 01 2 1
  3. 01 3 1
  4. 01 0 0
  5. 01 1 2
  6. 01 2 2
  7. 01 3 2
  8. 01 1 3
  9. 01 2 3
  10. 02 0 0
  11. 02 1 1
  12. 02 2 1
复制代码
谢谢各位大神指点!

二维码

扫码加我 拉你入群

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

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

关键词:数据集

衣带渐宽终不悔,为伊消得人憔悴~~
l1i2n3i4n5g 在职认证  发表于 2018-8-10 17:11:27 |显示全部楼层 |坛友微信交流群
data test;
  input apply_no $ no;
  cards;
01 1
01 2
01 3
01 0
01 1
01 2
01 3
01 1
01 2
02 0
02 1
02 2
;
run;

data test1;
   set test;
   id=_n_;
run;

proc sort data=test1;
   by apply_no no;
run;

data test2;
   retain num;
   set test1;
   by apply_no no;
   if no=1 then do;
      if first.no then num=1;
      else num+1;
   end;
   else call missing(num);
run;

proc sort data=test2;
   by id;
run;

data want;
   set test2;
   retain tmp tmp_on;
   if not missing(num) then do;
      tmp=num;
      tmp_on=1;
   end;
   if missing(num) and dif(no)^=1 then tmp_on=0;
   if missing(num) then num=(tmp*tmp_on)+(no*(1-tmp_on));
   keep apply_no no num;
run;

使用道具

gaotao0727 发表于 2018-8-15 18:14:56 |显示全部楼层 |坛友微信交流群
l1i2n3i4n5g 发表于 2018-8-10 17:11
data test;
  input apply_no $ no;
  cards;
太有才了,这办法都想出来了,非常感谢!!

使用道具

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

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

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

GMT+8, 2024-3-29 22:10