Proc rank gebruiken in sas (met voorbeelden)
U kunt PROC RANK in SAS gebruiken om de rangorde van een of meer numerieke variabelen te berekenen.
Hier zijn de vier meest voorkomende manieren om deze procedure te gebruiken:
Methode 1: rangschik één variabele
proc rank data =original_data out =ranked_data;
var var1;
ranks var1_rank;
run ;
Methode 2: classificeer een variabele per groep
proc rank data =original_data out =ranked_data;
var var1;
by var2;
ranks var1_rank;
run ;
Methode 3: Rangschik een variabele in percentielen
proc rank data =original_data groups =4 out =ranked_data;
var var1;
ranks var1_rank;
run ;
Methode 4: Classificeer meerdere variabelen
proc rank data =original_data out =ranked_data;
var var1 var2;
ranks var1_rank var2_rank;
run ;
De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met de volgende gegevensset in SAS:
/*create dataset*/
data original_data;
input team $pointsrebounds;
datalines ;
At 25 10
At 18 4
At 18 7
At 24 8
B 27 9
B 33 13
B 31 11
B 30 16
;
run ;
/*view dataset*/
proc print data = original_data;
Voorbeeld 1: variabele van rang één
De volgende code laat zien hoe u een nieuwe variabele kunt maken met de naam points_rank , die de door elk team gescoorde punten rangschikt:
/*rank points scored by team*/
proc rank data =original_data out =ranked_data;
var points;
ranks points_rank;
run ;
/*view ranks*/
proc print data =ranked_data;
Het team met de meeste punten krijgt de hoogste ranking en het team met de minste punten krijgt de laagste ranking.
Bij een gelijkspel in gescoorde punten wordt een gemiddelde rang toegekend. De rijen met de eerste en tweede laagste punten krijgen bijvoorbeeld een rangschikking van 1,5, aangezien dit het gemiddelde is van 1 en 2.
Merk op dat u in plaats daarvan de aflopende verklaring kunt gebruiken om het team met de meeste punten de laagste rang toe te kennen:
/*rank points scored by team in descending order*/
proc rank data =original_data descending out =ranked_data;
var points;
ranks points_rank;
run ;
/*view ranks*/
proc print data =ranked_data;
Voorbeeld 2: variabele van rang één per groep
De volgende code laat zien hoe u een nieuwe variabele kunt maken met de naam points_rank , die de gescoorde punten rangschikt, gegroepeerd op team:
/*rank points scored, grouped by team*/
proc rank data =original_data out =ranked_data;
var points;
by team;
ranks points_rank;
run ;
/*view ranks*/
proc print data =ranked_data;
Voorbeeld 3: Rangschik een variabele in percentielen
We kunnen de instructie groups gebruiken om variabelen in percentielgroepen te sorteren. We kunnen elke puntwaarde bijvoorbeeld indelen in een kwartiel (vier groepen):
/*rank points into quartiles*/
proc rank data =original_data groups =4 out =ranked_data;
var points;
ranks points_rank;
run ;
/*view ranks*/
proc print data =ranked_data;
Rijen met puntwaarden in het laagste kwartiel krijgen een groep van 0 toegewezen, rijen met punten in het daaropvolgende laagste kwartiel krijgen een groep van 1 toegewezen, enzovoort.
Opmerking : om waarden in decielen toe te kennen, gebruikt u eenvoudigweg groups=10 .
Voorbeeld 4: classificeer meerdere variabelen
De volgende code laat zien hoe u beide nieuwe variabelen kunt maken om punten en rebounds te classificeren:
proc rank data =original_data out =ranked_data;
var points rebounds;
ranks points_rank rebounds_rank;
run ;
Aanvullende bronnen
In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:
Procedureoverzicht gebruiken in SAS
Proc-tabel gebruiken in SAS
Hoe PROC Transpose in SAS te gebruiken
Hoe frequentietabellen in SAS te maken