我正在努力根据某些条件在SAS中创建两个矩阵。
尝试使用以下格式创建12x12矩阵:
col1 col2 col3 col4 ............col12
1 0 0 0 ............ 0
1 1 0 0 ............ 0
1 1 1
0 1 1
0 0 1
1 0 0
1 1 0
1 1 1
0 1 1
0 0 1
0 0 0
0 0 0
等等。
和 -
col1 col2 col3 col4 ............col12
1 0 0 0 ............ 0
1 2 0 0 ............ 0
1 2 3
0 2 3
0 0 3
1 0 0
1 2 0
1 2 3
0 2 3
0 0 3
0 0 0
0 0 0
等等。基本上显示col#而不是1#。
我在线阅读了几篇文章并尝试了Proc IML,但是我得到了一个错误,该程序并不存在。 我尝试下面的代码开始但没有。我对如何输入条件感到困惑。
data test_matrices ;
array col(12) col1-col12;
do i=1 to 12;
j=i-1;
col(i)=ifn(i le 5 , 1, 0,0);
output;
end;
run;
请帮忙。
感谢。
杰
答案 0 :(得分:0)
您需要从什么开始:
数组必须有一个名称,除非它们是临时数组,否则它们还需要变量名(如果不提供,它们将使用与数组索引连接的名称)。所以:
array(*)1-12;
需要
array myVars(12) col1-col12;
所以这个:
do i=1 to 12;
do j=1 to 12;
... do stuff ...
end;
output; *you had this right! It goes in the outer loop since it defines rows.;
end;
即,这个:
myvars[j] = i;
这不正确,但弄清楚什么是正确的并将其分配给myvars [j]。
答案 1 :(得分:0)
谢谢乔!我感谢你的指导。 下面是2 1s 0和2 1s的代码。
data test_matrices ;
array col(12) col1-col12;
do i=1 to 12;
do j=1 to 12;
col[j]= ifn((j-i ge 1) or (i-j=2) or (j > 8) or (i-j ge 5) , 0, 1);
end;
output;
end;
run;