slicing
Slicing: Zugriff auf Teile von Datenobjekten
bei Vektoren:
# zwei Datenvektoren: sex <- c(1,2,2,1,1,1,2,2,2,1,2,2,1,1,1,2,1) age <- c(15, 17, 22, 32, 12, 18, 24, 34, 23, 22, 29, 15, 17, 20, 21, 23, 19) # die ersten 5 Alterswerte: age[1:5] # die Werte 2, 5, 7-10 des Vektors age[c(2, 5, 7:10)] # Bedingter Zugriff (Filter) # die Werte unter 20 age[age < 20] # Zugriff kann auch erfolgen über anderen Vektor und Bedingung hieraus (Filter aufgrund anderer Daten) # alle Werte von age für sex = 1 age[sex == 1] # auch kombinierte Bedingungen sind möglich # alle Werte von age > 10 und sex = 2 age[sex == 2 & age > 10]
Slices bei Dataframes
Zugriff auf Spalten
# Beispiel data.frame generieren data <-data.frame( nr=c(1,2,3,4,5), geschl=c('w','m','m','w','w'), spass=c(10, 8, 7, 9, 3)) # Zugriff auf einzelne Spalten # Über den Spaltennamen # Name data.frame, ein $-Zeichen, Name der Spalte data$geschl # oder data['geschl'] # oder data[,1]
Teilmatrizen, Teil-Dataframes
in der Slice-Klammer mit Komma getrennt Zeilenangabe, Spaltenangabe '[Zeilen, Spalten]'
fehlt eine der beiden Angaben, gilt es für alle
data <-data.frame( nr=c(1,2,3,4,5), geschl=c('w','m','m','w','w'), spass=c(10, 8, 7, 9, 3)) # erste Zeile (Vp 1) zweite Variable (Geschlecht) ausgeben: data[1,2] # erste Zeile/Vp ausgeben, alle Variablen data[1,] # das geht auch mit dem bedingten Zugriff # alle Frauen data[data$geschl == 'w',] # alle Frauen mit Spass < 10 data[data$geschl == 'w' & data$spass < 10,]