如图所示,数据由因变量Y与自变量x1-x200构成整个数据集,储存在在work.indices中;
现在我想将x1与x2做归一化,x1与x3做归一化,x1与x4归一化...直到x200......同样做x2与x3归一化...直到x200....依此类推直到x199与x200做归一化,公式为:
n1=(x1-x2)/(x1+x2),n2=(x1-x3)/(x1+x3),n3=(x1-x4)/(x1+x4),n4=(x1-x5)/(x1+x5),.........n201=(x2-x3)/(x2+x3),.......
nK=(x199-x200)/(x199+x200).(K为常数)
将所有数据在所得到的新变量还是按照Y、n1、n2、n3....nk储存起来在新的数据集work.new中。
[size=13.333333969116211px]pobel大哥 给了我这个程序:
data test;
y=1000;
array x[200] x1-x200;
do _n_=1 to 200;
x(_n_)=_n_;
end;
run;
data test1;
set test;
array x(200);
array nn(19900) ;
do i=1 to 199;
do j=i+1 to 200;
num+1;
nn(num)=(x(i)-x(j))/(x(i)+x(j));
end;
end;
keep y nn1-nn19900;
run;
语句是没有了问题。但是我将数据集test换成我的数据集work.indices后,只生成一行以nn1-nn19900为变量名的第一行数。
我的目的是想每行数均需要进行归一化计算,而且我的数据有400行,需要考虑多行,因此还需更正?还请大侠们帮助,这个程序对我非常重要。。。先谢谢各位了!!