Zum Inhalt springen

GNU R: order

Aus Wikibooks


Der Befehl order(OBJEKT$x) ordnet den Datensatz OBJEKT anhand des dort enthaltenen metrischen Vektor x in aufsteigender Reihenfolge.

Handhabung

[Bearbeiten]

Wir bedienen uns nun des Datensatzes aus Beispiels 4.

Angenommen wir wollen bsp4 nach dem Einkommen sortieren, bewerkstelligen wir dies über den Umweg der numerischen Indize der Fälle (Zeilen). order gibt als Ergebnis einen Vektor zurück, der die Stelle enthält, an der die umsortierten Vektorelemente ursprünglich waren.

> order(bsp4$Einkommen)                                                                                                                                            
[1] 2 5 6 1 7 3 4 

Diese Information lässt sich für Datensätze auch folgendermassen lesen: Der 2. Fall (Caro) hat das niedrigste Einkommen, das zweitniedrigste Einkommen hat der 5. Fall (Samira), usw. Diesen geordneten Indexvektor kann man nun entsprechend den obigen Referenzierungsregeln verwenden, um den Gesamtdatensatz sortiert auszugeben.

> bsp4[order(bsp4$Einkommen),]                                                                                                                               
    Name   Geschlecht Lieblingsfarbe Einkommen                                                                                                                           
2   Caro     weiblich           blau       800                                                                                                                           
5 Samira     weiblich           gelb       899                                                                                                                           
6  Peter    maennlich          gruen      1100                                                                                                                           
1   Hans    maennlich          gruen      1233                                                                                                                           
7  Sarah     weiblich           blau      1900                                                                                                                           
3   Lars    wechselnd           gelb      2400                                                                                                                           
4   Ines     weiblich        schwarz      4000  

Soll der Datensatz anhand des Einkommens in absteigender Reihenfolge sortiert werden, ist der Befehl wie folgt zu erweitern:

> order(bsp4$Einkommen, decreasing = TRUE)

Ein weiteres Beispiel soll die Sortierung nach mehreren Kriterien verdeutlichen. Angenommen wir wollen zunächst nach Geschlecht und innerhalb der Geschlechtergruppen als 2. Sortierungsregel nach dem Einkommen sortieren. Hierzu werden Variablen, in der Reihenfolge die der "Sortierungs-Hierarchie" entspricht, hintereinander order übergeben. Für die nominale Variable Geschlecht liefert order eine alphabetische Sortierung. Somit kann der nach beiden Bedingungen sortierte Datensatz ausgeben werden:

>  bsp4[order(bsp4$Geschlecht, bsp4$Einkommen),]                                                                                          
    Name   Geschlecht Lieblingsfarbe Einkommen                                                                                                                           
3   Lars    wechselnd           gelb      2400                                                                                                                           
6  Peter    maennlich          gruen      1100                                                                                                                           
1   Hans    maennlich          gruen      1233                                                                                                                           
2   Caro     weiblich           blau       800                                                                                                                           
5 Samira     weiblich           gelb       899                                                                                                                           
7  Sarah     weiblich           blau      1900                                                                                                                           
4   Ines     weiblich        schwarz      4000

siehe auch

[Bearbeiten]
  • sort() zum sortieren eines Vektors