我正在努力将单变量表转换为sas中的多变量表。我会说“单变量表”我的意思可能仍然是一个多变量表...但这是一个例子:
a b c
1001 1 4 8
1001 2 3 7
1002 11 9 6
1002 5 14 15
我希望它像:
a1 b1 c1 a2 b2 c3
1001 1 4 8 2 3 7
1002 11 9 6 5 14 15
因为我有数以千计的ID(如1001-3000)。有一种简单的方法可以翻转桌子吗?
非常感谢!
答案 0 :(得分:0)
这不是一个简单的方法,因为你正在做多个值。 您可以进行3次转置 - 每个值一次,并通过@jaamor的链接进行合并。或者您可以进行半手动数据步骤转置。假设最大计数为2.如果每个ID超过2,则可以计算最大值并将其放入宏变量中。然后用宏变量替换代码中的2。
data want;
set have;
by id;
array _a(2) a1-a2;
array _b(2) b1-b2;
array _c(2) c1-c2;
retain a: b: c:;
if first.id then count=1;
else count+1;
_a(count)=a;
_b(count)=b;
_c(count)=c;
if last.id then output;
drop a b c count;
run;