<- matrix(c(3, 4, 2, 0, 2, 0, 3, 2, 1, 1,
ybocs 0, 4, 3, 4, 2, 2, 1, 2, 2, 4,
3, 4, 3, 3, 0, 3, 3, 3, 4, 0,
1, 3, 3, 0, 1, 3, 2, 0, 0, 3),
nrow = 4,
ncol = 10,
byrow = TRUE)
<- c("KVT", "PD", "PD", "KVT") therapieform
9 Data.frames
Sowohl bei Vektoren als auch bei Matrizen haben wir festgestellt, dass wir immer nur einen bestimmten Datentyp (Text oder Zahlen) speichern können. Meistens haben wir jedoch dutzende Variablen in unserem Datensatz, von denen manche Zahlen sind und andere Text. Beispielsweise könnte der Y-BOCS Wert als Zahl, die Therapierichtung aber als Text gespeichert sein:
In echten Datensätzen hätten wir wahrscheinlich noch sehr viel mehr Variablen. Daher ist das Vorgehen oben extrem aufwendig, weil wir so unseren Datensatz auf zig unterschiedliche Variablen aufgeteilt würden.
Data.frames erlauben es uns, verschiedene Datentypen in einer einzigen Tabelle zu speichern. Um einen data.frame zu erstellen, können wir unsere ybocs-Variable nehmen und in den data.frame - Befehl werfen:
<- data.frame(ybocs)
ybocs_df print(ybocs_df)
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 3 4 2 0 2 0 3 2 1 1
2 0 4 3 4 2 2 1 2 2 4
3 3 4 3 3 0 3 3 3 4 0
4 1 3 3 0 1 3 2 0 0 3
Wir können den Spalten auch etwas sinnvollere Namen geben, indem wir folgenden Code ausführen:
colnames(ybocs_df) <- c("frage 1", "frage 2", "frage 3", "frage 4", "frage 5",
"frage 6", "frage 7", "frage 8", "frage 9", "frage 10")
Wir können nun neue Variablen hinzufügen, indem wir das Dollar-Symbol nutzen:
$therapieform <- therapieform
ybocs_dfprint(ybocs_df)
frage 1 frage 2 frage 3 frage 4 frage 5 frage 6 frage 7 frage 8 frage 9
1 3 4 2 0 2 0 3 2 1
2 0 4 3 4 2 2 1 2 2
3 3 4 3 3 0 3 3 3 4
4 1 3 3 0 1 3 2 0 0
frage 10 therapieform
1 1 KVT
2 4 PD
3 0 PD
4 3 KVT
9.1 Auf Daten eines data.frame zugreifen
Um Daten herauszugreifen, können wir wieder eckige Klammern verwenden. Identisch zu Matrizen haben wir wieder Zeilen und Spalten. Wir müssen nun also sowohl die Zeile als auch die Spalte angeben, deren Element wir herausgreifen wollen:
1,3] # ergibt das Element in der ersten Zeile, dritten Spalte ybocs_df[
[1] 2
Was passiert, wenn Du folgenden Code ausführst?
1,] ybocs_df[
Lösung anzeigen
1,] ybocs_df[
frage 1 frage 2 frage 3 frage 4 frage 5 frage 6 frage 7 frage 8 frage 9
1 3 4 2 0 2 0 3 2 1
frage 10 therapieform
1 1 KVT
Was passiert, wenn Du folgenden Code ausführst?
1] ybocs_df[,
Lösung anzeigen
1] ybocs_df[,
[1] 3 0 3 1
Alternativ können wir Spaltennamen nutzen, um ganze Spalten herauszugreifen. Hierfür nutzen wir wieder das Dollar-Zeichen:
$therapieform ybocs_df
[1] "KVT" "PD" "PD" "KVT"