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!


  1. Log-transformiere die Variable age in data und speichere das Ergebnis unter dem Namen age.log.

  1. Quadriere die Werte in pss.1 und speichere das Ergebnis unter dem Namen pss.1.squared.

  1. 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.

  1. Packe den Mittelwert und die Standardabweichung von cesd.2 in eine Liste.

  1. Hat die Variable mbi.0 die passende Objektklasse numeric? Überprüfe dies mit R Code.

  1. Lege im Dataframe data zwei neue Variablen an:
    • age.50plus, eine logical-Variable die mit TRUE und FALSE angibt, ob das Alter age einer Person $\geq$ 50 ist.
    • pss.diff, eine Variable die den Unterschied zwischen pss.0 und pss.1 für jede Person angibt.

  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 in group, wobei 1 für die Interventionsgruppe steht. Die Variable sex kodiert das Alter, wobei 1 für männlich steht.

  1. Ändere den Wert von ft.helps in der dritten und vierten Zeile zu NA.

  1. 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, um data dem Alter age nach zu ordnen!

Lösung


  1. Log-transformiere die Variable age in data und speichere das Ergebnis unter dem Namen age.log.
age.log <- log(data$age)

 

  1. Quadriere die Werte in pss.1 und speichere das Ergebnis unter dem Namen pss.1.squared.
pss.1.squared <- data$pss.1^2

 

  1. 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)

 

  1. 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))

 

  1. Hat die Variable mbi.0 die passende Objektklasse numeric? Überprüfe dies mit R Code.
class(data$mbi.0)

 

  1. Lege im Dataframe data zwei neue Variablen an:
    • age.50plus, eine logical-Variable die mit TRUE und FALSE angibt, ob das Alter age einer Person $\geq$ 50 ist.
    • pss.diff, eine Variable die den Unterschied zwischen pss.0 und pss.1 für jede Person angibt.
data$age.50plus <- data$age >= 50
data$pss.diff <- data$pss.0 - data$pss.1

 

  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 in group, wobei 1 für die Interventionsgruppe steht. Die Variable sex kodiert das Alter, wobei 1 für männlich steht.
data %>%
  filter(group == 1, sex == 1) %>%
  pull(age) %>%
  mean()

 

  1. Ändere den Wert von ft.helps in der dritten und vierten Zeile zu NA.
data[3:4, "ft.helps"] <- c(NA, NA)

 

  1. 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, um data dem Alter age nach zu ordnen!
data[order(data$age),]

Zurück