SAS中文论坛

标题: 关于用transpose转置的问题 [打印本页]

作者: shiyiming    时间: 2009-4-3 12:17
标题: 关于用transpose转置的问题
我有这么一个数据集A,
id          date             price
601     20080101        11
601     20080102        15
601     20080103        12
602     20080102        21
602     20080104        15

我想把他转置成B1,  
    date             601     602
20080101           11             .
20080102           15            21
20080103           12            .
[b:1i991nsw]20080104           .             15 [/b:1i991nsw]

我用PROC TRANDPOSE在做(proc sort data=a;by date; run;        
                                           proc transpose data=a out=b;
                                            by date;
                                            var id;
                                              run;
),但转置的时候由于源数据A的缺失值,无法达到数据集B1这样的输出要求,
转换出来的都是B2的这种形式:
date             601     602
20080101           11             .
20080102           15            21
20080103           12            .
[b:1i991nsw]20080104           15            . [/b:1i991nsw]

请高手指点。
data a;
input id $4 date yymmdd10. price ;
datalines;
601    20080101    11
601    20080102    15
601    20080103    12
602    20080102    21
602    20080104    15
;
run;
作者: shiyiming    时间: 2009-4-6 06:50
标题: Re: 关于用transpose转置的问题
Try this code

proc sort data=a;
by date price;
run;

proc transpose data=a out=b(drop=_name_);
var price;
by date ;
id id;
run;
proc print data=b;
run;




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