Slicing & Indexing
Foliensatz
Praxis-Teil
Übungsaufgaben
Für die Übungsaufgaben muss der Übungsdatensatz data geladen sein, sowie das {tidyverse} package.
library(tidyverse)
data <- read.csv("data/data.csv")Anmerkung: Die Übungsaufgaben werden zunehmend schwieriger. Vor allem für Anfänger ist es vollig normal, nicht alle Aufgaben auf Anhieb lösen zu können!
- Log-transformiere die Variable
ageindataund speichere das Ergebnis unter dem Namenage.log.
- Quadriere die Werte in
pss.1und speichere das Ergebnis unter dem Namenpss.1.squared.
- Berechne den Mittelwert und die Standardabweichung ($SD$) der Variable
cesd.2. Nutze bei Bedarf das Internet um herauszufinden, welche Funktion in R die Standardabweichung berechnet.
- Packe den Mittelwert und die Standardabweichung von
cesd.2in eine Liste.
- Hat die Variable
mbi.0die passende Objektklassenumeric? Überprüfe dies mit R Code.
- Lege im Dataframe
datazwei neue Variablen an:age.50plus, einelogical-Variable die mitTRUEundFALSEangibt, ob das Alterageeiner Person $\geq$ 50 ist.pss.diff, eine Variable die den Unterschied zwischenpss.0undpss.1für jede Person angibt.
- Baue eine Pipe, die (1) alle männlichen Personen in der Interventionsgruppe herausfiltert; (2) die Variable
ageaus dem Dataframe herauszieht; und (3) den Mittelwert des ausgewählten Daten berechnet. Im Datensatz befindet sich die Gruppenzuordnung ingroup, wobei1für die Interventionsgruppe steht. Die Variablesexkodiert das Alter, wobei1für männlich steht.
- Ändere den Wert von
ft.helpsin der dritten und vierten Zeile zuNA.
- Zuletzt eine “harte Nuss”: mit der
orderFunktion kann für Variablen ein Index gebildet werden. Dieser Index zeigt an, in welcher Reihenfolge die Elemente korrekt geordnet wären. Nutze die R Documentation (?order), um mehr über die Funktion zu erfahren. Nutze dann diese Funktion in einer eckigen Klammer, umdatadem Alteragenach zu ordnen!
Lösung
- Log-transformiere die Variable
ageindataund speichere das Ergebnis unter dem Namenage.log.
age.log <- log(data$age)
- Quadriere die Werte in
pss.1und speichere das Ergebnis unter dem Namenpss.1.squared.
pss.1.squared <- data$pss.1^2
- Berechne den Mittelwert und die Standardabweichung ($SD$) der Variable
cesd.2. Nutze bei Bedarf das Internet um herauszufinden, welche Funktion in R die Standardabweichung berechnet.
mean(data$cesd.2, na.rm = TRUE)
sd(data$cesd.2, na.rm = TRUE)
- Packe den Mittelwert und die Standardabweichung von
cesd.2in eine Liste.
list(mean(data$cesd.2, na.rm = TRUE),
sd(data$cesd.2, na.rm = TRUE))
- Hat die Variable
mbi.0die passende Objektklassenumeric? Überprüfe dies mit R Code.
class(data$mbi.0)
- Lege im Dataframe
datazwei neue Variablen an:age.50plus, einelogical-Variable die mitTRUEundFALSEangibt, ob das Alterageeiner Person $\geq$ 50 ist.pss.diff, eine Variable die den Unterschied zwischenpss.0undpss.1für jede Person angibt.
data$age.50plus <- data$age >= 50
data$pss.diff <- data$pss.0 - data$pss.1
- Baue eine Pipe, die (1) alle männlichen Personen in der Interventionsgruppe herausfiltert; (2) die Variable
ageaus dem Dataframe herauszieht; und (3) den Mittelwert des ausgewählten Daten berechnet. Im Datensatz befindet sich die Gruppenzuordnung ingroup, wobei1für die Interventionsgruppe steht. Die Variablesexkodiert das Alter, wobei1für männlich steht.
data %>%
filter(group == 1, sex == 1) %>%
pull(age) %>%
mean()
- Ändere den Wert von
ft.helpsin der dritten und vierten Zeile zuNA.
data[3:4, "ft.helps"] <- c(NA, NA)
- Zuletzt eine “harte Nuss”: mit der
orderFunktion kann für Variablen ein Index gebildet werden. Dieser Index zeigt an, in welcher Reihenfolge die Elemente korrekt geordnet wären. Nutze die R Documentation (?order), um mehr über die Funktion zu erfahren. Nutze dann diese Funktion in einer eckigen Klammer, umdatadem Alteragenach zu ordnen!
data[order(data$age),]