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
age
indata
und speichere das Ergebnis unter dem Namenage.log
.
- Quadriere die Werte in
pss.1
und 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.2
in eine Liste.
- Hat die Variable
mbi.0
die passende Objektklassenumeric
? Überprüfe dies mit R Code.
- Lege im Dataframe
data
zwei neue Variablen an:age.50plus
, einelogical
-Variable die mitTRUE
undFALSE
angibt, ob das Alterage
einer Person $\geq$ 50 ist.pss.diff
, eine Variable die den Unterschied zwischenpss.0
undpss.1
für jede Person angibt.
- Baue eine Pipe, die (1) alle männlichen Personen in der Interventionsgruppe herausfiltert; (2) die Variable
age
aus dem Dataframe herauszieht; und (3) den Mittelwert des ausgewählten Daten berechnet. Im Datensatz befindet sich die Gruppenzuordnung ingroup
, wobei1
für die Interventionsgruppe steht. Die Variablesex
kodiert das Alter, wobei1
für männlich steht.
- Ändere den Wert von
ft.helps
in der dritten und vierten Zeile zuNA
.
- Zuletzt eine “harte Nuss”: mit der
order
Funktion 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, umdata
dem Alterage
nach zu ordnen!
Lösung
- Log-transformiere die Variable
age
indata
und speichere das Ergebnis unter dem Namenage.log
.
age.log <- log(data$age)
- Quadriere die Werte in
pss.1
und 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.2
in eine Liste.
list(mean(data$cesd.2, na.rm = TRUE),
sd(data$cesd.2, na.rm = TRUE))
- Hat die Variable
mbi.0
die passende Objektklassenumeric
? Überprüfe dies mit R Code.
class(data$mbi.0)
- Lege im Dataframe
data
zwei neue Variablen an:age.50plus
, einelogical
-Variable die mitTRUE
undFALSE
angibt, ob das Alterage
einer Person $\geq$ 50 ist.pss.diff
, eine Variable die den Unterschied zwischenpss.0
undpss.1
fü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
age
aus dem Dataframe herauszieht; und (3) den Mittelwert des ausgewählten Daten berechnet. Im Datensatz befindet sich die Gruppenzuordnung ingroup
, wobei1
für die Interventionsgruppe steht. Die Variablesex
kodiert das Alter, wobei1
für männlich steht.
data %>%
filter(group == 1, sex == 1) %>%
pull(age) %>%
mean()
- Ändere den Wert von
ft.helps
in der dritten und vierten Zeile zuNA
.
data[3:4, "ft.helps"] <- c(NA, NA)
- Zuletzt eine “harte Nuss”: mit der
order
Funktion 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, umdata
dem Alterage
nach zu ordnen!
data[order(data$age),]