proc转置所需的最小变量数

时间:2015-09-04 08:17:34

标签: sas

proc转置中的最小变量数有限制吗? 我有如下数据。

group subgroups
A        1
A        2
A        3
B        1
B        2

我需要转置数据,所需的输出是

A  B
1 1
2 2
3 .

请帮我解决你的建议。

谢谢, 拉维

2 个答案:

答案 0 :(得分:2)

转置两次以获得你想要的东西;

data have;
    input group $ subgroups;
    cards;
    A        1
    A        2
    A        3
    B        1
    B        2
    ;
    proc transpose data=have out=temp;
    by group;
    run;

    proc transpose data=temp out=want(drop=_name_);
    id group;
    run;

答案 1 :(得分:0)

为什么输出中的第一行有A = 1且B = 1?为什么在最后一次观察中B的缺失值?你想保留原始订单吗?如果是,则创建一个订单变量,并将其用作转置中的变量。

data middle ; 
  set have ;
  by group ;
  if first.group then row=0;
  row+1; 
run;
proc sort data=middle ; 
  by row group; 
run;
proc transpose data=middle out=want ;
  by row;
  id group;
  var subgroups;
run;