SAS中文论坛
标题:
行列转换
[打印本页]
作者:
shiyiming
时间:
2009-11-24 14:50
标题:
行列转换
已存在一数据集tmp,有三个变量 a b c,需要变为当a相同时,对应的b c的数据列转行,放在一行中。
a b c
1 4 6
1 5 5
2 5 2
2 6 8
3 1 7
3 5 6
现在需要变成
a m n x y
1 4 5 6 4
2 5 6 2 8
3 1 5 7 6
应该如何编程?
作者:
shiyiming
时间:
2009-11-24 17:10
标题:
Re: 行列转换
[code:zm4glkku]data a;
input a b c;
cards;
1 4 6
1 5 5
2 5 2
2 6 8
3 1 7
3 5 6
;
proc transpose data=a out=b;
var b c;
by a;
run;
data c(rename=(col1=m co2=n)) d(rename=(col1=x col2=y));
set b;
if _name_='b' then output c ;
if _name_='c' then output d ;
run;
data e;
merge c d;
by a;
drop _name_;
run;[/code:zm4glkku]
作者:
shiyiming
时间:
2009-11-24 17:40
标题:
Re: 行列转换
Caution: 仅适用于示例数据
[code:1zh7x6yn]data a;
input a b c;
cards;
1 4 6
1 5 5
2 5 2
2 6 8
3 1 7
3 5 6
;
data b;
retain a m b x c;
set a;
by a;
if first.a then do; m=b; x=c; end;
else output;
rename b=n c=y;
run;[/code:1zh7x6yn]
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2