SAS中文论坛

标题: 求助!数据转置问题! [打印本页]

作者: shiyiming    时间: 2012-8-8 12:16
标题: 求助!数据转置问题!
ID Qtr1 Qtr2 Qtr3 Qtr4;
E00224 12 33 22 .
E00367 35 48 40 30
将上面数据转成下面这种:
ID Qtr amount;
E00224    Qtr1       12
E00224    Qtr2       33
E00224    Qtr3       22
E00224    Qtr4        .
E00367    Qtr1       35
E00367    Qtr2       48
E00367    Qtr3       40
E00367    Qtr4       30
用transpose语句我会,我想请教大家用output 语句怎么实现?
谢谢大家!
作者: shiyiming    时间: 2012-8-9 02:49
标题: Re: 求助!数据转置问题!
how about:

data out;
set in;
array qt(4) qtr1-qtr4;
array nmq(4) $ ('Qtr1' 'Qtr2' 'Qtr3' 'Qtr4');
do i=1 to 4;
QTR=nmq(i);
Amount=qt(i);
output;
end;
drop i nmq: qtr1-qtr4;
run;
作者: shiyiming    时间: 2012-8-9 17:59
标题: Re: 求助!数据转置问题!
lz 能否展示一下用transpose的做法?
作者: shiyiming    时间: 2012-8-10 09:25
标题: Re: 求助!数据转置问题!
data in;
input ID $  Qtr1 Qtr2 Qtr3 Qtr4;
cards;
E00224 12 33 22 .
E00367 35 48 40 30
;
run;

proc transpose data=in out=out(rename=(_NAME_=qtr COL1=amount));
by id;
var qtr1 qtr2 qtr3 qtr4;
run;




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2