将单变量表转换为sas中的多变量表

时间:2015-01-16 16:29:54

标签: sql sas

我正在努力将单变量表转换为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)。有一种简单的方法可以翻转桌子吗?

非常感谢!

1 个答案:

答案 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;