SAS中文论坛

标题: 怎样在sas中作内积? [打印本页]

作者: shiyiming    时间: 2010-2-4 23:14
标题: 怎样在sas中作内积?
我有数据表A,B,变量数相同,且较多。现在想把A的每一行以及B看成向量,想计算A的每一行与B的内积,就是A、B位置相同的变量相加求和。

这个在matlab里很好做,就是A*B'。但sas要实现同样的功能,是不是要用iml编程?我不太会,求教,谢谢!!!
作者: shiyiming    时间: 2010-2-5 00:01
标题: Re: 怎样在sas中作内积?
[code:26uu2cx8]data AB;
        merge A B;
        array a{*} a1-a5;
        array b{*} b1-b5;
        InnerProduct = 0;
        do i = 1 to dim(a);
                InnerProduct+a[i]*b[i];
        end;
run;[/code:26uu2cx8]

假设 1.不考虑missing 2.A和B表内的变量名字没有相同(参与运算的)3. A和B的观察数也相同
作者: shiyiming    时间: 2010-2-7 17:44
标题: Re: 怎样在sas中作内积?
用PROC SCORE

data av/view=av;
        set a;
        retain _TYPE_ 'PARMS';
        _NAME_=cats('V', _n_);
run;

proc score data=b  score=av  type=parms  out=inner;
run;




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