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,]