SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1008|回复: 3
打印 上一主题 下一主题

求助:Datastream 资料整理问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-12-9 15:28:29 | 只看该作者

求助:Datastream 资料整理问题

我从Datastream下载的数据型态为
  Date        data1   data2   data3
     --            AA       BB       CC
20010103     100      200      300
20010104     101      201      301
20010105     102      202      302

如何把它改成

Date        ticker   data
20010103  AA       101
20010104  AA       102
20010105  AA       103
20010103  BB       201
20010104  BB       202
20010105  BB       203
20010103  CC      301
20010104  CC      302
20010105  CC      303

请大家帮忙,谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-12-9 21:14:34 | 只看该作者

Re: 求助:Datastream 资料整理问题

[code:2yx2ppd2]data raw;
    input Date yymmdd8. data1 data2 data3;
    label data1='AA'
          data2='BB'
          data3='CC';
    format date yymmdd10.;
datalines;
20010103 100 200 300
20010104 101 201 301
20010105 102 202 302
;
data out1(drop=i);
    length ticker $10;
    set raw;
    array out{*} data1-data3;
    do i=1 to dim(out);
        data=out(i);
        ticker=label(out(i));
        output;
    end;
    drop data1-data3;
run;
proc sql;
    create table out2 as
        select date, data1 as data, 'AA' as ticker length=10
            from raw
        union all
        select date, data2 as data, 'BB' as ticker length=10
            from raw
        union all
        select date, data3 as data, 'CC' as ticker length=10
            from raw;
quit;
proc transpose data=raw out=out3(drop=_name_ rename=(col1=data)) label=ticker;
    by date;
    var data1-data3;
run;[/code:2yx2ppd2]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-12-12 18:04:11 | 只看该作者

Re: 求助:Datastream 资料整理问题

测试成功了,谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-12-12 18:36:22 | 只看该作者

Re: 求助:Datastream 资料整理问题

凑个热闹~~
[code:2o7sw9jf]
data a;
format date yymmddn8.;
input date yymmdd8. @;
%macro b(tk);
          ticker="&tk";
          input data @;
          output;
%mend;
%b(AA);
%b(BB);
%b(CC);
input;
datalines;
20010103 100 200 300
20010104 101 201 301
20010105 102 202 302
;
run;
proc sort data=a; by ticker data;run;
[/code:2o7sw9jf]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 19:32 , Processed in 0.073354 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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