SAS中文论坛
标题:
怎么把sum值放到同一个数据集中?
[打印本页]
作者:
shiyiming
时间:
2003-10-31 22:19
标题:
怎么把sum值放到同一个数据集中?
%macro prob;
%do j=1 %to 10;
data aa (drop=i);
do i=1 to 47;
a=ranuni(0);
b=ranuni(0);
output;
end;
proc rank data=aa out=aa;
var a;
ranks
x
;
proc rank data=aa out=aa;
var b;
ranks
y
;
run;
data aa;
set aa;
if x>37 then xx=1;
else if x<11 then xx=-1;
else xx=0;
if y>37 then yy=1;
else if y<11 then yy=-1;
else yy=0;
z=xx*yy;
proc means data=aa sum;
var z;
run;
%end;
%mend prob;
%prob;
对于如上程序的结果,即10个z的sum,怎么把10个z的sum放到同一个数据集中呢,作为z-sum变量的10个观测?
先谢谢各位了!!
对于提高程序效率的改动更是欢迎!
作者:
shiyiming
时间:
2003-11-1 09:48
不用宏好像更易于处理,不知是否达到你的要求?
data aa (drop=i);
do k=1 to 10;
do i=1 to 47;
a=ranuni(0);
b=ranuni(0);
output;
end;
end;
run;
proc rank data=aa out=aa;
by k;var a; ranks x ;
proc rank data=aa out=aa;
by k;var b; ranks y ;
run;
data aa;
set aa;
if x>37 then xx=1;
else if x<11 then xx=-1;
else xx=0;
if y>37 then yy=1;
else if y<11 then yy=-1;
else yy=0;
z=xx*yy;
proc means data=aa noprint;
by k;
var z;
output out=cc(keep=z rename=(z=z_sum)) sum=;
run;
作者:
shiyiming
时间:
2003-11-1 12:20
谢谢老兄了
真是高手啊
万分感谢!!!
我现在就是编程能力太差了
很多自己的想法都实现不
所幸的是论坛上有那么多的热心人
感动.................
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2