标题: 如何根据数据集aaa中变量的顺序 对var进行排序 [打印本页] 作者: shiyiming 时间: 2009-4-11 09:53 标题: 如何根据数据集aaa中变量的顺序 对var进行排序 data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;
data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;
/*如何根据数据集aaa中变量的顺序 对var进行排序*/
want:
id var value
1 a 1
1 b 1
1 c 3
2 a 2
2 c 1作者: shiyiming 时间: 2009-4-11 10:32 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 SAS新人 请多指教
*****************************************
proc sort data=bbb;
by id;
run;
proc sort data=aaa;
by id;
run;
data test;
merge bbb(in=ina) aaa;
by id;
if var='a' then sort=a;
else if var='b' then sort=b;
else if var='c' then sort=c;
if ina;
drop a b c;
run;
proc sort data=test;
by id sort;
run;作者: shiyiming 时间: 2009-4-11 13:21 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 你的,是要这个吗?
data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;
proc transpose data=aaa out=bbb(rename=(_NAME_=var COL1=value));
var a b c;
by id;
run;作者: shiyiming 时间: 2009-4-11 13:53 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 不是 目的是如何根据数据集aaa中变量的顺序 对数据集bbb中var的值进行排序 最好程序能通用化作者: shiyiming 时间: 2009-4-11 18:45 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 data bbb(keep=id var value s);
set bbb;
a=1; b=2; c=3;
s= vvaluex(var);
run;
proc sort data=bbb out=ccc;
by id s;
run;
ps:题目意思完全靠猜。作者: shiyiming 时间: 2009-4-11 19:08 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 data aaa;
input id a b c d;
cards;
1 9 10 11
2 22 34 15
;
run;
数据集aaa中变量的顺序是 id a b c
先对数据集中id进行排序,然后根据id a b c这个顺序对数据集bbb中var的变量值进行排序
data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;
want:
id var value
1 a 1
1 b 1
1 c 3
2 a 2
2 c 1作者: shiyiming 时间: 2009-4-11 19:10 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 谢谢 变量很多时 写a=1; b=2; c=3;会很多!作者: shiyiming 时间: 2009-4-11 20:54 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 有几个变量?作者: shiyiming 时间: 2009-4-11 20:55 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 [code:l50yucw5]data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;
data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;
data ccc(keep=id v ord);
set aaa;
array arr a b c;
do over arr;
v=vname(arr);
ord=arr;
output;
end;
run;
proc sql;
create table ddd(drop=ord) as
select bbb.id, var, value,ord
from bbb left join ccc
on bbb.id=ccc.id and bbb.var=ccc.v
order by id, ord
;[/code:l50yucw5]作者: shiyiming 时间: 2009-4-11 21:45 标题: Re: 如何根据数据集aaa中变量的顺序 对var进行排序 macro