Horizontal aufsteigend "sortieren"

Hallo,

ich habe einen Datensatz, der wie folgt aufgebaut ist:

Spaltennamen: Name, N01, N02, ... , N120

Huber 0 0 8 5 2 1 0 ...0
Schmidt 0 3 2 1 0 .... 0

Ich möchte nun eine "Linksverschiebung" durchführen, also horizontale absteigend sortiert,
aber ohne dass sich die Spaltennamen ändern. Am Ende soll dieser Datensatz wie folgt aussehen:

Spaltennamen: Name, N01, N02, ... , N120

Huber 8 5 2 1 0 ... 0
Schmidt 3 2 1 0 ... 0

Wie mache ich sowas am besten?

Vielen Dank schonmal vorab für Hilfestellungen.

Gruß
Zura

Funktion largest

Hallo Zura,

du kannst die Funktion Largest benutzen. Hier ein Beispiel:

data test;
input Name$ f01 - f10;
array sort f01 - f10;
array temp _T_1 - _T_10;
do i = 1 to hbound(sort) ;
temp[i] = largest(i, of sort{*});
end;
drop f01 - f10 i;
rename _T_1 - _T_10 = f01 - f10;
cards;
Huber . 0 8 5 2 1 0 0 3 4
Schmidt 0 3 2 1 0 0 5 7 2 5
run;

Schöne Grüße

Jan

Danke

Hallo Jan,

herzlichen Dank für deine Lösung.

Viele Grüße
Zura

Artikel Sortier-Allerlei

Hallo,

schau Dir mal meinen Artikel Sortier-Allerlei an. Dort ist
ein Quicksort für ein Array in einem Datastep beschrieben (macro_qsort.sas).
Das müsstest Du "einfach" an Dein Problem anpassen.

Viele Grüße
Wolfgang