SAS中用于堆叠数据的代码程序是什么? 出于举例的目的,假设我有这个数据集:
DATA test.one;
INPUT Name $ Y1996 Y1997 Y1998 Y1999;
cards;
Dan 5 10 40 20
Derek 10 12 10 10
run;
proc print data = test.one;
run;
运行这个集合会给我一个这样的输出:
Name Y1996 Y1997 Y1998 Y1999
Dan 5 10 40 20
Derek 10 12 10 10
但是,我希望我的数据看起来像这样:
Name Year Income
Dan 1996 5
Dan 1997 10
Dan 1998 40
Dan 1999 20
Derek 1996 10
Derek 1997 12
Derek 1998 10
Derek 1999 10
如上所示,它将创建与堆叠数据相对应的新变量收入。
答案 0 :(得分:0)
您是否在询问如何直接将原始数据读入该表单?
DATA want;
INPUT Name $ @;
do year=1996 to 1999;
input income @;
output;
end;
cards;
Dan 5 10 40 20
Derek 10 12 10 10
;
答案 1 :(得分:0)
PROC Transpose可以解决这个问题;
DATA test.one;
INPUT Name $ y1996 y1997 y1998 y1999;
cards;
Dan 5 10 40 20
Derek 10 12 10 10
run;
proc print data = test.one;
run;
proc transpose data=test.one out=long1;
by name;
run;
data test2;
set long1 (rename=(col1=Income));
RUN;
然后,它会将数据集转换为堆叠版本。