Horizontal aufsteigend "sortieren"
Verfasst von Zuralein am 12 Februar, 2010 - 14:14
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
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Funktion largest
Hallo Zura,
du kannst die Funktion Largest benutzen. Hier ein Beispiel:
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