楼主: buyi1
4127 13

[问答] SAS数据转置 [推广有奖]

11
suizh 发表于 2013-6-6 23:01:23
data a;
input y1999 y2000 y2001;
cards;
234 345 435
345 4555 3456
;
run;
proc contents data=a out=name(keep=name) noprint;
run;
data _null_;
set name;
i=_n_;
year=input(substr(name,2),8.);
call symput(compress("j"||i),year);
run;
%put _user_;
%macro merg;
data b;
set a;
array k{3}_numeric_;
%do i=1 %to 3 ;
ii=&i;
year1=&&j&i;
procduct=k{ii};
output;
%end;
keep year1 procduct;
run;
%mend;
%merg;

12
buyi1 发表于 2013-6-7 10:04:35
呵呵 有点复杂 我仔细研究一下哈 谢谢啦

13
sslee2010 在职认证  发表于 2015-1-27 08:59:33
看不懂

14
teqel 发表于 2015-1-27 10:25:57
看看这个行不行
  1. proc import datafile="D:\rec.XLSx" out=AA
  2. dbms=excel  replace;
  3. getnames=no;
  4. run;

  5. data want;
  6. retain b1-b11;
  7. keep code year x ;
  8. array a{11} f2-f12;
  9. array b{11};
  10. set AA;
  11. if _n_<=2 then do i=1 to 11;
  12.         b[i]=a[i];
  13. end;
  14. if _n_>2 then do i=1 to 11;
  15.         code=f1;
  16.         year=b[i];
  17.         x=a[i];
  18.         output;
  19. end;
  20. run;
复制代码

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

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