SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 761|回复: 2
打印 上一主题 下一主题

数据转换?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-7-19 16:47:52 | 只看该作者

数据转换?

将下面的数据

DSCODE        COUNTRY        TYPE        y2001        y2002        y2003
123        1        WC01001          1819350        1783020        1525807
123        1        WC01051          1646862        1560196        1366192
123        1        WC01084          53024        56811        53405
133        1        WC01001          1819350        1783020        1525807
133        1        WC01051          1646862        1560196        1366192
143        2        WC01001          1819350        1783020        1525807
143        2        WC01051          1646862        1560196        1366192
153        3        WC01001          1819350        1783020        1525807
153        3        WC01051          1646862        1560196        1366192
153        3        WC01094          53024        56811        53405

变成这样的形式

DSCODE        COUNTRY        YEAR        WC01001        WC01051        WC01084        WC01094
123        1        2001        1819350        1646862        53024        .
123        1        2002        1783020        1560196        56811        .
123        1        2003        1525807        1366192        53405        .
133        1        2001        1819350        1646862        .        .
133        1        2002        1783020        1560196        .        .
133        1        2003        1525807        1366192        .        .
143        2        2001        1819350        1646862        .        .
143        2        2002        1783020        1560196        .        .
143        2        2003        1525807        1366192        .        .
153        3        2001        1819350        1646862        .        53024
153        3        2002        1783020        1560196        .        56811
153        3        2003        1525807        1366192        .        53405

补充说明:
1,DSCODE在不同的COUNTRY没有重复的,但是TYPE在不同的DSCODE或者COUNTRY下绝大部分重复。
2,希望可以用SAS一次完成。我现在可以想到的是按DSCODE一个一个的TRANSPOSE,然后合并。

肯请SAS高人不吝指教,这里先行谢过!!!(BOW)
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-7-19 22:23:36 | 只看该作者

data transform

data a;
input DSCODE COUNTRY TYPE$ y2001 y2002 y2003;
cards;
123 1 WC01001 1819350 1783020 1525807
123 1 WC01051 1646862 1560196 1366192
123 1 WC01084 53024 56811 53405
133 1 WC01001 1819350 1783020 1525807
133 1 WC01051 1646862 1560196 1366192
143 2 WC01001 1819350 1783020 1525807
143 2 WC01051 1646862 1560196 1366192
153 3 WC01001 1819350 1783020 1525807
153 3 WC01051 1646862 1560196 1366192
153 3 WC01094 53024 56811 53405
;
proc transpose data=a out=b;
var y2001 y2002 y2003;
by dscode country;
id type;
data c;
set b(rename=(_name_=YEAR));
YEAR=substr(YEAR,2,4);
label year=;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-7-20 09:35:35 | 只看该作者

非常感谢

非常感谢YEES高人,看来我对SAS还没有入门啊,呵呵。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 19:02 , Processed in 0.368752 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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