SAS9.2提供了自定义函数的功能,而且函数定义中自变量可以使用矩阵进行数据传输,但SAS本身的矩阵功能比较弱,传输的矩阵必须使用临时矩阵,现在碰到的一个问题就是:
在一个数据集中有两列数据,A和B,如何在把这两列数据作为临时矩阵传输到自定义的函数中,A、B数据可能很长,手工输入的方式不大现实。
data test;*定义的测试数据;
input i A B;
datalines;
1 2 3
2 4 5
3 6 3
4 7 3
5 3 3
6 8 6
7 9 3
8 3 8
9 10 4
10 11 10
;
run;
proc fcmp outlib=sasuser.dwt.funcs inlib=sasuser.dwt;*自定义函数;
function tt(target[*],input[*]);
tNum=dim(target);
sum1=0;
do i=1 to dim(input);
Sum1=sum1+input[i]
end;
sum2=0;
do i =1 to dim(target);
sum2=sum2+target[i];
end;
sumDif=sum2-sum1
return (sumDif);
endsub;
run;
options cmplib=sasuser.dwt;
???如何实现把test中的A、B列作为一个临时数组导入到自定义函数tt中运行,O(∩_∩)O谢谢!