【发布时间】: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
proc转置中变量的最小数量有什么限制吗? 我有如下数据。
group subgroups
A 1
A 2
A 3
B 1
B 2
我需要转置数据,期望的输出是
A B
1 1
2 2
3 .
请帮我提出你的建议。
谢谢, 拉维
【问题讨论】:
标签: sas
转置两次得到你想要的;
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;
【讨论】:
为什么输出中的第一行有 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;
【讨论】: