Einleitung

In dieser Übung wendest du R-Funktionen an, welche oft gebraucht werden, um Datensätze zu bearbeiten. Dazu zählen:

Zusätzlich werden einige Funktionen der deskriptiven Statistik repetiert.


Datensatz

In einer longitudinalen Studie wurde untersucht, wie sich der IQ bei Menschen, welche im Koma lagen, erholt. Aufgrund vieler fehlender Werte (missing values), wurde der Original-Datensatz für diese Übung gekürzt. Der Datensatz “IQ_recovery.csv” umfasst folgende Variablen:

  • days_1: IQ-Messzeitpunkt: Anzahl Tage seit dem Koma
  • duration: Dauer des Komas in Tagen
  • sex: Geschlecht: «Female», «Male»
  • age: Alter zum Zeitpunkt der Verletzung
  • Piq_1: Performance IQ (z.B. mathematischer), Zeitpunkt 1
  • viq_1: Verbaler IQ, Zeitpunkt 1
  • Piq_2 Performance IQ (z.B. mathematischer), Zeitpunkt 2
  • viq_2 Verbaler IQ, Zeitpunkt 2


Höhere Punkte entsprechen einem besser IQ (Quelle).

Übung 1

Aufgabe

Importiere den Datensatz und speichere ihn in einem Objekt ab. Gib dem Objekt einen kurzen aber treffenden Namen. Schau dir die Struktur des Datensatzes an.

Lösung

Ich habe den Datensatz “IQ” genannt:

library("rio")
IQ <- import("../Data/IQ_recovery.csv")
str(IQ)
## 'data.frame':    61 obs. of  9 variables:
##  $ duration: int  21 94 42 17 60 9 14 20 28 9 ...
##  $ sex     : chr  "Male" "Male" "Female" "Female" ...
##  $ age     : num  22 20.1 27.3 19.7 17.8 ...
##  $ days_1  : int  1491 85 907 146 453 3333 187 525 56 65 ...
##  $ piq_1   : int  71 63 63 65 59 86 97 79 65 67 ...
##  $ viq_1   : int  94 82 64 98 81 80 97 87 75 67 ...
##  $ days_2  : int  3412 576 2259 216 684 3337 438 884 236 189 ...
##  $ piq_2   : int  68 91 78 74 66 101 98 87 85 79 ...
##  $ viq_2   : int  92 96 79 100 75 84 94 93 88 82 ...


Übung 2

Aufgabe

Gibt es Variablen, bei welchen der Datentyp angepasst werden sollte? Führe diese Anpassungen durch, wenn nötig.


Lösung

Die Variable sex ist eine kategoriale Variable und sollte in einen Factor umgewandelt werden.

IQ$sex <- factor(IQ$sex)
str(IQ)
## 'data.frame':    61 obs. of  9 variables:
##  $ duration: int  21 94 42 17 60 9 14 20 28 9 ...
##  $ sex     : Factor w/ 2 levels "Female","Male": 2 2 1 1 2 2 2 2 2 2 ...
##  $ age     : num  22 20.1 27.3 19.7 17.8 ...
##  $ days_1  : int  1491 85 907 146 453 3333 187 525 56 65 ...
##  $ piq_1   : int  71 63 63 65 59 86 97 79 65 67 ...
##  $ viq_1   : int  94 82 64 98 81 80 97 87 75 67 ...
##  $ days_2  : int  3412 576 2259 216 684 3337 438 884 236 189 ...
##  $ piq_2   : int  68 91 78 74 66 101 98 87 85 79 ...
##  $ viq_2   : int  92 96 79 100 75 84 94 93 88 82 ...

Übung 3

Aufgabe

Vielleicht ist dir aufgefallen, dass es im Datensatz keine Identifikationsnummern gibt. Erstelle eine Variable ID von 1 aufsteigend bis \(n\). Schaffst du es, diese Variable so dem Datensatz hinzuzufügen, dass sie in der ersten Spalte steht?


Lösung

Zuerst wird die Variable ID erstellt:

ID <- 1:nrow(IQ)
ID
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54 55 56 57 58 59 60 61


Danach kann die neue Variable und der bisherige Datensatz “zusammengesetzt” werden (hier werden die ersten 6 Zeilen des Datensatzes gezeigt):

IQ <- data.frame(ID, IQ)
IQ[1:6,]
##   ID duration    sex  age days_1 piq_1 viq_1 days_2 piq_2 viq_2
## 1  1       21   Male 22.0   1491    71    94   3412    68    92
## 2  2       94   Male 20.1     85    63    82    576    91    96
## 3  3       42 Female 27.3    907    63    64   2259    78    79
## 4  4       17 Female 19.7    146    65    98    216    74   100
## 5  5       60   Male 17.8    453    59    81    684    66    75
## 6  6        9   Male 43.9   3333    86    80   3337   101    84

Übung 4

Aufgabe

Erstelle noch zwei weitere Variablen:

  • Die Variable viq_diff, welche die Differenz zwischen viq_1 und viq_2 darstellt.
  • Die Variable piq_rel, also die relative Veränderung des Performance-IQs (dabei gilt piq_1 als 100%).

Füge beide Variablen dem Datensatz hinzu.


Lösung

Die Variable viq_diff wird wie folgt erstellt (es werden die ersten 6 Zeilen des Datensatzes gezeigt):

IQ$viq_diff <- IQ$viq_2 - IQ$viq_1
IQ[1:6,]
##   ID duration    sex  age days_1 piq_1 viq_1 days_2 piq_2 viq_2 viq_diff
## 1  1       21   Male 22.0   1491    71    94   3412    68    92       -2
## 2  2       94   Male 20.1     85    63    82    576    91    96       14
## 3  3       42 Female 27.3    907    63    64   2259    78    79       15
## 4  4       17 Female 19.7    146    65    98    216    74   100        2
## 5  5       60   Male 17.8    453    59    81    684    66    75       -6
## 6  6        9   Male 43.9   3333    86    80   3337   101    84        4

Achtung: hier wird der erste Wert vom zweiten Wert abgezogen. Positive Werte bedeuten demnach, dass sich der IQ verbessert hat. Es gibt keine allgemeine Regel, ob man den ersten vom zweiten Wert abzieht oder umgekehrt. Wichtig ist, dass man weiss, wie negative und positive Werte inhaltlich zu interpretieren sind.


Die Variable piq_rel kann wie folgt berechnet werden:

IQ$piq_rel <- (IQ$piq_2 - IQ$piq_1)/IQ$piq_1
IQ[1:6,]
##   ID duration    sex  age days_1 piq_1 viq_1 days_2 piq_2 viq_2 viq_diff
## 1  1       21   Male 22.0   1491    71    94   3412    68    92       -2
## 2  2       94   Male 20.1     85    63    82    576    91    96       14
## 3  3       42 Female 27.3    907    63    64   2259    78    79       15
## 4  4       17 Female 19.7    146    65    98    216    74   100        2
## 5  5       60   Male 17.8    453    59    81    684    66    75       -6
## 6  6        9   Male 43.9   3333    86    80   3337   101    84        4
##   piq_rel
## 1 -0.0423
## 2  0.4444
## 3  0.2381
## 4  0.1385
## 5  0.1186
## 6  0.1744

Übung 5

Aufgabe

  1. Erstelle einen Teildatensatz males für die Männer und einen für die Frauen (females).
  2. Ist die durchschnittliche relative Veränderung des Performance IQs bei Männern und Frauen ca. gleich?

Lösung

  1. Erstelle einen Teildatensatz “males” für die Männer und einen für die Frauen (“females”).
males <- subset(IQ, sex == "Male")
females <- subset(IQ, sex == "Female")
  1. Ist die durchschnittliche relative Veränderung des Performance IQs bei Männern und Frauen ca. gleich?
(piq_rel_males <- mean(males$piq_rel))
## [1] 0.149
(piq_rel_females <- mean(females$piq_rel))
## [1] 0.135

Die mittlere relative Veränderung des Performance IQs beträgt 0.149 bei den Männern und 0.135 bei den Frauen. Die Werte sind also ähnlich.


Übung 6

Aufgabe

Stelle die relative Veränderung des Performance IQ’s mittels Boxplot dar, jedoch separat für die Männer und die Frauen. Speichere die Grafik / die Grafiken auf deinem Computer.


Lösung

Variante ohne das Erstellen eines Subsets:

boxplot(IQ$piq_rel ~ IQ$sex)

Variante mit subset:

boxplot(females$piq_rel, males$piq_rel)


Um die Grafik zu speichern, kannst du im Grafikfenster auf “Export” klicken und die Grafik als Bild abspeichern. Es öffnet sich ein Fenster, wo du die Grösse, den Namen und den Speicherort definieren kannst.


Übung 7

Aufgabe

Entferne im Originaldatensatz (nicht in den subsets) die Variable age.

Lösung

Die 4. Variable (age steht in der 4. Spalte) kann mit einem Minuszeichen entfernt werden:

IQ <- IQ[,-4]
IQ[1:6,]
##   ID duration    sex days_1 piq_1 viq_1 days_2 piq_2 viq_2 viq_diff piq_rel
## 1  1       21   Male   1491    71    94   3412    68    92       -2 -0.0423
## 2  2       94   Male     85    63    82    576    91    96       14  0.4444
## 3  3       42 Female    907    63    64   2259    78    79       15  0.2381
## 4  4       17 Female    146    65    98    216    74   100        2  0.1385
## 5  5       60   Male    453    59    81    684    66    75       -6  0.1186
## 6  6        9   Male   3333    86    80   3337   101    84        4  0.1744

Übung 8

Aufgabe

Lösche die Person mit der ID = 19 aus dem Datensatz.


Lösung

Die Person mit der ID 19 steht in der Zeile 19. Diese kann wie folgt entfernt werden:

IQ <- IQ[-19, ]
IQ[15:20,]
##    ID duration    sex days_1 piq_1 viq_1 days_2 piq_2 viq_2 viq_diff piq_rel
## 15 15        2   Male     50    79    93    177    89   102        9   0.127
## 16 16       14   Male     34    70    88    133    82    94        6   0.171
## 17 17        4 Female     69    75    86    202    81    90        4   0.080
## 18 18       28   Male     82    74    92    814    99    96        4   0.338
## 20 20        1   Male    263    79    91    432    92   107       16   0.165
## 21 21        7   Male     31    86    83   2000   104    91        8   0.209

Selbstverständlich muss man solche Datenmanipulationen immer gut dokumentieren und begründen.