2290 4

如何能把id列中id相同的数据转换到同一行中? [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
1.3070
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1499 点
帖子
18
精华
0
在线时间
66 小时
注册时间
2013-10-27
最后登录
2025-7-2

楼主
糖.甜到哀傷 发表于 2014-7-18 16:06:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据是这样的:
1.JPG
复制代码

我想通过写一个宏把上面的数据转成如下形式:
2.JPG

自己写了一个程序,但实现不了,也不知道哪里有问题,求大神们帮帮忙~~~~~
我的程序:
  1. proc sql;
  2. select id into: list1 separated by " " from credit_inf;
  3. select status into: list2 separated by " " from credit_inf;
  4. select currency into: list3 separated by " " from credit_inf;
  5. quit;
  6. %macro create;
  7. data split;
  8. set credit_inf;
  9. %let i=1;
  10. rename
  11. status=status_&i;
  12. currency=currency_&i;
  13. %do %while(%scan(&list1,&i," ")~=);
  14. %let id=%scan(&list1,&i," ");
  15. %let status=%scan(&list2,&i," ");
  16. %let currency=%scan(&list3,&i," ");

  17. if id=&id. then

  18. status_&i=status;
  19. currency_&i=currency;
  20. else

  21. %let i=%eval(&i.+1);
  22. %end;
  23. run;
  24. %mend;
  25. %create;
复制代码



二维码

扫码加我 拉你入群

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

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

关键词:相同的数据 数据转换 currency separate proc sql 如何

沙发
糖.甜到哀傷 发表于 2014-7-18 17:45:30
木有人会吗。。。。。。。。

藤椅
糖.甜到哀傷 发表于 2014-7-21 09:28:22
。。。。。。。。

板凳
yongyitian 发表于 2014-7-21 09:33:11
  1. /* the data need to be sorted by the ID */

  2. data credit_inf;
  3. input id status currency;
  4. datalines;
  5. 1771 11 2
  6. 1771 33 4
  7. 1772 55 6
  8. 1773 77 8
  9. 1773 99 7
  10. 1773 11 9
  11. ; run;


  12. data credit_inf_trans;
  13.   do i = 1 by 1 until (last.id);
  14.     set credit_inf (rename=(status=stat currency=curr));
  15.       array status{3};
  16.       array currency{3};
  17.     by id;
  18.     status[i]=stat;
  19.     currency[i]=curr;
  20.   end;
  21.   drop i stat curr;
  22. run;
复制代码

报纸
糖.甜到哀傷 发表于 2014-7-21 09:36:10
yongyitian 发表于 2014-7-21 09:33
太感谢了,帮了大忙了,谢谢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 12:26