SAS中文论坛

标题: 数据转换? [打印本页]

作者: shiyiming    时间: 2004-7-19 16:47
标题: 数据转换?
将下面的数据

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)
作者: shiyiming    时间: 2004-7-19 22:23
标题: 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;
作者: shiyiming    时间: 2004-7-20 09:35
标题: 非常感谢
非常感谢YEES高人,看来我对SAS还没有入门啊,呵呵。




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