楼主: yu9954
2896 10

[有偿编程] 请教:如何用把某一变量名相同的观测值合并成同一行 [推广有奖]

11
孤单的我们 发表于 2020-6-12 15:28:07
  1. data a;
  2. input study_ID $ A01ab A02ab A03ab A04ab B01ab B02ab;
  3. cards;
  4. 1 1 0 0 0 0 0
  5. 1 0 0 1 0 0 0
  6. 1 0 0 0 0 1 0
  7. 2 1 0 0 0 0 0
  8. 2 0 1 0 0 0 0
  9. ;
  10. run;

  11. proc sort data=a;
  12.         by study_id;
  13. run;

  14. data b;
  15.         set a;
  16.         by study_id;
  17.         array var A01ab A02ab A03ab A04ab B01ab B02ab;
  18.         array _t{6};
  19.         retain _t1-_t6;
  20.         do i=1 to 6;
  21.                 if first.study_id then _t[i]=0;
  22.                 if var[i]=1 then _t[i]=1;
  23.                 if last.study_id then do;
  24.                         var[i]=_t[i];
  25.                 end;
  26.         end;
  27.         if last.study_id;
  28.         drop _t: i;
  29. run;
复制代码

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

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