Das Datenframe MeinDatenframe enthält 12 Beobachtungen von 4 Variablen. Varibale geschlecht ist ein Faktor mit 3 Ausprägungen, usw.
In RStudio werden diese Informationen im Datenfenster angezeigt (Abbildung 10.1).
Abb. 10.1: str() im Datenfenster
Mit der Funktion head() können Sie sich einen weiteren Überblick über den Datensatz verschaffen. Die Funktion head() gibt die ersten 6 Zeilen des Datensatzes aus.
# zeige die ersten 6 Reihen von "MeinDatenframe"head(MeinDatenframe)
## geschlecht spitzname hausnummer angemeldet
## Eins m Hasi 1 TRUE
## Zwei w Ide 2 TRUE
## Drei d Momsi 3 FALSE
## Vier m Ryu 4 TRUE
## Fünf w Dave 5 FALSE
## Sechs d Zoid 6 FALSE
Möchten wir mehr als 6 Einträge sehen, können wir dies an head() übergeben:
# zeige die ersten 10 Reihen von "MeinDatenframe"head(MeinDatenframe, 10)
## geschlecht spitzname hausnummer angemeldet
## Eins m Hasi 1 TRUE
## Zwei w Ide 2 TRUE
## Drei d Momsi 3 FALSE
## Vier m Ryu 4 TRUE
## Fünf w Dave 5 FALSE
## Sechs d Zoid 6 FALSE
## Sieben m Adu 7 FALSE
## Acht w Efi 8 TRUE
## Neun d Ole 9 TRUE
## Zehn m Ray 10 TRUE
Im Gegensatz dazu zeigt tail() die letzten Reihen des Datenframes an.
# zeige die letzten 5 Reihen von "MeinDatenframe"tail(MeinDatenframe, 5)
## geschlecht spitzname hausnummer angemeldet
## Acht w Efi 8 TRUE
## Neun d Ole 9 TRUE
## Zehn m Ray 10 TRUE
## Elf w Sam 11 FALSE
## Zwölf d Emi 12 TRUE
10.1 Sortieren
Mit der Funktion sort() können Datenreihen auf- und absteigend sortiert werden. Standardmäßig wird aufsteigend sortiert
# sortiere "hausnummer" von "MeinDatenframe" # aufsteigendsort(MeinDatenframe$hausnummer)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
Um absteigend zu sortieren, muss der Parameter decreasing auf TRUE gesetzt werden
# sortiere "spitzname" von "MeinDatenframe"# absteigendsort(MeinDatenframe$spitzname, decreasing=T)
Mit der Funktion order() werden die Zeilenpositionen ausgegeben, an deren Stelle sich die von sort() sortierten Daten befinden.
# sortiere "spitznamen" von "MeinDatenframe" # aufsteigend, und zeige Positionen an order(MeinDatenframe$spitzname)
## [1] 7 5 8 12 1 2 3 9 10 4 11 6
Das kann man nun verwenden, um den kompletten Datensatz in dieser Ordnung anzuzeigen. Wir können ja durch Anhängen von eckigen Klammern die gewünschten Zeilen und Spalten des Datenframes referenzieren. Also übergeben wir die Positionsreihenfolge von order() als Argument in die eckige Klammer.
## geschlecht spitzname hausnummer angemeldet
## Sieben m Adu 7 FALSE
## Fünf w Dave 5 FALSE
## Acht w Efi 8 TRUE
## Zwölf d Emi 12 TRUE
## Eins m Hasi 1 TRUE
## Zwei w Ide 2 TRUE
## Drei d Momsi 3 FALSE
## Neun d Ole 9 TRUE
## Zehn m Ray 10 TRUE
## Vier m Ryu 4 TRUE
## Elf w Sam 11 FALSE
## Sechs d Zoid 6 FALSE
Oder andersherum
# sortiere "spitznamen" von "MeinDatenframe" # absteigend, zeige ganzes Datenframe an MeinDatenframe[order(MeinDatenframe$spitzname, decreasing=T), ]
## geschlecht spitzname hausnummer angemeldet
## Sechs d Zoid 6 FALSE
## Elf w Sam 11 FALSE
## Vier m Ryu 4 TRUE
## Zehn m Ray 10 TRUE
## Neun d Ole 9 TRUE
## Drei d Momsi 3 FALSE
## Zwei w Ide 2 TRUE
## Eins m Hasi 1 TRUE
## Zwölf d Emi 12 TRUE
## Acht w Efi 8 TRUE
## Fünf w Dave 5 FALSE
## Sieben m Adu 7 FALSE
10.2 Teilgruppen erstellen
Mit der Funktion subset() können Teilgruppen aus einem Datenframe erstellt werden.
# erstelle eine Teilgruppe aus MeinDatenframe# für "geschlecht" = dsubset(MeinDatenframe, geschlecht=="d")
## geschlecht spitzname hausnummer angemeldet
## Drei d Momsi 3 FALSE
## Sechs d Zoid 6 FALSE
## Neun d Ole 9 TRUE
## Zwölf d Emi 12 TRUE
Über den Parameter select kann angegeben werden, welche Spalten übernommen werden sollen.
# erstelle eine Teilgruppe aus MeinDatenframe# für "geschlecht" = d# aber nur Spalte "spitzname" und "angemeldet"subset(MeinDatenframe, geschlecht=="d", select =c(spitzname, angemeldet))
## spitzname angemeldet
## Drei Momsi FALSE
## Sechs Zoid FALSE
## Neun Ole TRUE
## Zwölf Emi TRUE
Eine andere Möglichkeit zur Erstellung von Teilgruppen kann über die Referenzierung der Zeilen und Spalten des Datenframes (eckige Klammern) erfolgen
# erstelle eine Teilgruppe aus MeinDatenframe# für "geschlecht" = wMeinDatenframe[ MeinDatenframe$geschlecht =="w", ]
## geschlecht spitzname hausnummer angemeldet
## Zwei w Ide 2 TRUE
## Fünf w Dave 5 FALSE
## Acht w Efi 8 TRUE
## Elf w Sam 11 FALSE
Auf diese Weise können die Bedingungen auch mit einem & kombiniert werden
# erstelle eine Teilgruppe aus MeinDatenframe # für "geschlecht" = w und "hausnummer" größer 5 MeinDatenframe[(MeinDatenframe$geschlecht =="w") & (MeinDatenframe$hausnummer >5) ,]
## geschlecht spitzname hausnummer angemeldet
## Acht w Efi 8 TRUE
## Elf w Sam 11 FALSE
Über Angabe der Spaltennummern können wir das Teilset noch weiter zusammenschrumpfen lassen
# erstelle eine Teilgruppe aus MeinDatenframe # für "geschlecht" = w und "angemeldet" = TRUE # aber nur Spalte "spitzname" und "hausnummer"MeinDatenframe[(MeinDatenframe$geschlecht =="w") & (MeinDatenframe$angemeldet== T), c(2,3)]
## spitzname hausnummer
## Zwei Ide 2
## Acht Efi 8
Möchte man auf die Referenzierung per Dollarzeichen $ verzichten, kann die Funktion with() verwendet werden.