【问题标题】:minimum number of variables required for proc transposeproc转置所需的最小变量数
【发布时间】:2015-09-04 08:17:33
【问题描述】:

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

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

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

A  B
1 1
2 2
3 .

请帮我提出你的建议。

谢谢, 拉维

【问题讨论】:

    标签: sas


    【解决方案1】:

    转置两次得到你想要的;

    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;
    

    【讨论】:

      【解决方案2】:

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

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多