私は、ft値に応じて可変列の変数を再配置したいと考えています。 ft = 1ならば、o2とo5 @ 33と34を入れてください。もしft = 2なら、o2とo5 @ 35と36などを入れてください...しかし、以下のループと配列が正しくないと思います。誰かが私が間違ったことを指摘できますか?SAS:列の位置の並べ替え
data fttry1;
input ft m1 o2 m3 m4 o5;
datalines;
1 2 3 4 5 6
2 7 8 9 10 11
3 12 13 14 15 20
4 16 17 18 19 21
;
run;
data fttry2;
set fttry1;
file print notitles;
put @10 ft
@30 M1
@31 M3-M4;
do ft =1 to 4;
array ftposition[2] o2 o5;
do i=1 to 2;
do l=33 to 34 by 2;
put @l ftposition[i];
end;
end;
end;
run;
あなたは、第3および第4の行に対して、ここでコード化されたものを2桁のnumber.Likeに対処する方法を不明確である、M1、M3、M4が位置が重なって発生しますすべて2桁の数字であり、出力で。 –
私はその問題については考えていませんでした。しかし、上記の主な問題は、o2とo5が他の変数と同じ行にとどまらないことです。多分、これはあなたが教えたことに関連しているのかもしれません。知りません。私は2のようなステートメントを置いた後に数字を修正しようとすることができます。 – user634455
処理したいデータセット全体がここでの例のように単純な場合(2つの変数のみが位置調整が必要です)、解決策は非常に簡単です。 –