Fortran到SAS代码转换
我想在proc iml中创建1、2、3维变量/数组。我的代码如下所示:Fortran到SAS代码转换,fortran,sas,Fortran,Sas,我想在proc iml中创建1、2、3维变量/数组。我的代码如下所示: proc iml; start Mean1(x); /*this is 1 dimension variable/array*/ Mean1(x)=sum(x)/dim(x); finish; proc iml; start Mean2(x); /*this is 2 dimension variable/array*/ Mean1(x)=sum(x)/dim(x); finish; pr
proc iml;
start Mean1(x); /*this is 1 dimension variable/array*/
Mean1(x)=sum(x)/dim(x);
finish;
proc iml;
start Mean2(x); /*this is 2 dimension variable/array*/
Mean1(x)=sum(x)/dim(x);
finish;
proc iml;
start Mean3(x); /*this is 3 dimension variable/array*/
Mean1(x)=sum(x)/dim(x);
finish;
我试着这样做:
proc iml;
declare double x[dim(n),dim(n)];
start Mean2(x); /*this is 2 dimension variable or array*/
Mean1(x)=sum(x)/dim(a, x);
finish;
但它不起作用。你能帮我吗?这里有几件事要知道
proc iml;
x = J(10,5,1); /*Declare a 10x5 matrix filled with 1s*/
x = normal(x); /*Fills matrix X with random numbers, uses the values in X as the seed*/
mean_all = x[:]; /*mean over all values in x*/
mean_col = x[:,];/*mean of each column */
mean_row = x[,:];/*mean of each row */
print mean_all;
print mean_col;
print mean_row;
quit;
我强烈建议您阅读IML文档 您是将IML Studio与IML+语言或基本过程IML一起使用?您使用的是哪个版本的SAS?我不是IML专家,但我同意-通常没有一种方法可以直接处理3+维数组/矩阵。详细介绍了如何使用
levels
向量来实现这一点,但我不确定将其转换为您在这里所做的事情有多容易。