【发布时间】:2022-12-09 09:51:37
【问题描述】:
数据集是 6 行 6 列,就像一个矩阵。我想将它旋转 90 度。 我有的:
data have;
input v1-v6;
cards;
1 1 1 0 0 0
1 1 0 0 0 0
1 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
;
run;
我想要的是一个像这样的数据集(或只是导致日志窗口):
0 0 0 1 1 1
0 0 0 0 1 1
0 0 0 1 0 1
0 0 1 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
我可以通过使用数组来实现这一点,并像这样执行循环:
data _null_;
array v[6];
array t[6,6];
do until(eof);
set have end=eof;
i+1;
do j=1 to 6;
t[j,i]=v[j];
end;
end;
do i=1 to 6;
do j=1 to 6;
put t[i,7-j]@;
end;
put;
end;
run;
我正在寻找另一种方法来实现这一目标,也许proc iml?
感谢您的任何提示。
【问题讨论】:
-
您只是颠倒了一行中值的顺序吗?或者你实际上是在转置矩阵?