SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 601|回复: 1
打印 上一主题 下一主题

关于用transpose转置的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-4-3 12:17:26 | 只看该作者

关于用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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-4-6 06:50:35 | 只看该作者

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;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 12:21 , Processed in 0.140384 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表