You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: inst/tutorials/2c_dataframes/dataframes.Rmd
+16-16Lines changed: 16 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ Im laufe des Tutorials wirst du...
51
51
52
52
## Einführung in Data Frames
53
53
54
-
Im Tutorial "Vektoren" hast du bereits gelernt, dass Vektoren Variablen darstellen und mehrere Werte enthalten können. Im folgenden lernst du, wie du mehrere Vektoren in einer Tabelle (einem Data Frame) zusammenbringen kannst.
54
+
Im Tutorial "Vektoren" hast du bereits gelernt, dass Vektoren Variablen darstellen und mehrere Werte enthalten können. Im Folgenden lernst du, wie du mehrere Vektoren in einer Tabelle (einem Data Frame) zusammenbringen kannst.
55
55
56
56
Einmal vorweg ein Beispiel für dich, wie ein Data Frame erstellt wird:
57
57
@@ -80,13 +80,13 @@ Neue Funktion: `data.frame()` Erstellt aus einzelnen *gleichlangen* Vektoren ein
80
80
81
81
In der Praxis wirst du zur Dateneingabe ein grafisches Programm wie Excel verwenden, und die fertige Tabelle dann für die Verwendung mit R importieren. Das wirst du im nächsten Tutorial "Datenimport" lernen.
82
82
83
-
Wenn im Folgenden immer wieder kleine Data Frames aus Vektoren erstellt werden, dient das nur dazu, Beispiele zu konstruieren um den Umgang zu erlernen, aber nicht weil das die übliche Methode ist, wie Daten in R eingegeben werden.
83
+
Wenn im Folgenden immer wieder kleine Data Frames aus Vektoren erstellt werden, dient das nur dazu, Beispiele zu konstruieren, um den Umgang zu erlernen, aber nicht weil das die übliche Methode ist, wie Daten in R eingegeben werden.
84
84
:::
85
85
86
86
### Prinzip
87
87
88
88
::: blau-nb
89
-
Die Idee eines Data Frames ist es, einen Haufen Vektoren gleicher Länge zu nehmen und damit eine Tabelle zu bauen. Dabei ist **jede Spalte ein Vektor**. Anders ausgedrückt: jede Spalte ist eine Variable.
89
+
Die Idee eines Data Frames ist es, einen Haufen Vektoren gleicher Länge zu nehmen und damit eine Tabelle zu bauen. Dabei ist **jede Spalte ein Vektor**. Anders ausgedrückt: Jede Spalte ist eine Variable.
90
90
:::
91
91
92
92
</br>
@@ -148,7 +148,7 @@ Eine Konvention für Data Frames ist es diesen als `df` abzukürzen. Da wir jedo
148
148
149
149
Hast du im Tutorial "Vektoren" gut aufgepasst?
150
150
151
-
Eigentlich hast du eben gelernt, alle Vektoren müssen gleich lang sein um einen Data Frame zu erstellen. Warum funktioniert es oben trotzdem, obwohl Vektor `z` nur Länge 1 hat und nicht ebenfalls 4?
151
+
Eigentlich hast du eben gelernt, alle Vektoren müssen gleich lang sein, um einen Data Frame zu erstellen. Warum funktioniert es oben trotzdem, obwohl Vektor `z` nur Länge 1 hat und nicht ebenfalls 4?
152
152
153
153
```{r recyc-quiz, echo = FALSE}
154
154
learnr::question_radio(
@@ -181,7 +181,7 @@ Fangen wir mit dem Prinzip von Matrizen an.
181
181
182
182
### Die Matrix
183
183
184
-
Die Matrix ist dir vielleicht noch ein Begriff aus der Filmwelt und hoffentlich auch aus dem Matheunterricht. Simple gesprochen ist sie eine zweidimensionale Datenstruktur mit Spalten und Zeilen. Sie kann Zahlen oder Text enthalten. Aber keine Angst, wir werden hier keine Matrizen multiplizieren oder Gleichungen nach X aufgelösen.
184
+
Die Matrix ist dir vielleicht noch ein Begriff aus der Filmwelt und hoffentlich auch aus dem Matheunterricht. Simpel gesprochen ist sie eine zweidimensionale Datenstruktur mit Spalten und Zeilen. Sie kann Zahlen oder Text enthalten. Aber keine Angst, wir werden hier keine Matrizen multiplizieren oder Gleichungen nach X auflösen.
Zur Veranschaulichung bleiben wir bei dem WG Beispiel. Als Matrix dargestellt bekommen wir den obrigen Output. Vielleicht kommen dir die eckigen Klammern bekannt vor, was meinst du können wir damit machen?
205
+
Zur Veranschaulichung bleiben wir bei dem WG Beispiel. Als Matrix dargestellt, bekommen wir den obrigen Output. Vielleicht kommen dir die eckigen Klammern bekannt vor, was meinst du können wir damit machen?
206
206
207
207
```{r matrix-quiz, echo = FALSE}
208
208
learnr::question_checkbox(
@@ -309,16 +309,16 @@ wg_list <- list(x,y,z)
309
309
wg_list # unsere Liste
310
310
```
311
311
312
-
Du siehst die Variablen (Spalten) bekommen doppelte eckige Klammern und die Einträge (Zeilen) einfache eckige Klammern. Wenn wir so auf eine Variable zugreifen wollen wird es schnell unübersichtlich. Wollen wir z.B. auf den Jahrgang von Amadou zugreifen wäre das `wg_list[[2]][1]`.
312
+
Du siehst die Variablen (Spalten) bekommen doppelte eckige Klammern und die Einträge (Zeilen) einfache eckige Klammern. Wenn wir so auf eine Variable zugreifen wollen, wird es schnell unübersichtlich. Wollen wir z.B. auf den Jahrgang von Amadou zugreifen wäre das `wg_list[[2]][1]`.
# ersetze die "Spalte" und "Zeile", um das Prinzip zu verstehen
318
318
wg_list[[Spalte]][Zeile]
319
319
```
320
320
321
-
Wie gesagt, ist dies etwas mühsam. Listen können jedoch viel mehr! Sie erlauben die Benutzung eines speziellen Operators zur Indizierung: Der `$`- Operator. Er ist speziell für das Indizieren bei benannten Listen gedacht. Hat eine Tabelle überschriften so können diese übernommen werden, für unsere Vektoren müssen wir jedoch erneut auf die explizite Namensgebung zurückgreifen.
321
+
Wie gesagt: Dies ist etwas mühsam. Listen können jedoch viel mehr! Sie erlauben die Benutzung eines speziellen Operators zur Indizierung: Der `$`- Operator. Er ist speziell für das Indizieren bei benannten Listen gedacht. Hat eine Tabelle Überschriften so können diese übernommen werden. Für unsere Vektoren müssen wir jedoch erneut auf die explizite Namensgebung zurückgreifen.
322
322
323
323
Jetzt bist du dran! Erinnerst du dich noch wie die Namensgebung in R funktioniert?
324
324
@@ -358,7 +358,7 @@ wg_liste
358
358
359
359
In der Ausgabe solltest du jetzt also sehen, dass sich die `[[1]]`,`[[2]]` und `[[3]]` respektive in `$name`, `$jahrgang` und `$grundpreis` gewandelt haben.
360
360
361
-
Wollen wir jetzt auf einen Eintrag in der Liste zugreifen können wir dies ganz bequem über den `$`- Operator, ganz ohne eckige Klammern. Es verhält sich dann wieder so als wäre es nur ein einzelner Vektor
361
+
Wollen wir jetzt auf einen Eintrag in der Liste zugreifen, können wir dies ganz bequem über den `$`- Operator, ganz ohne eckige Klammern. Es verhält sich dann wieder so, als wäre es nur ein einzelner Vektor.
@@ -475,7 +475,7 @@ wg_df[,4] # qm ist das vierte Element der Zeilen
475
475
wg_df[2,4] # Mira ist das zweite Element der Spalten
476
476
```
477
477
478
-
Das sollte geklappt haben. Aber was wenn unser Data Frame noch viel mehr Elemente hat? Dann wird es schwieriger nachzuvollziehen, an welcher Stelle das Element unserer Wahl liegt. Dafür eignet sich daher das List Subsetting besser.
478
+
Das sollte geklappt haben. Aber was, wenn unser Data Frame noch viel mehr Elemente hat? Dann wird es schwieriger nachzuvollziehen, an welcher Stelle das Element unserer Wahl liegt. Dafür eignet sich daher das List Subsetting besser.
479
479
480
480
##### List Subsetting
481
481
@@ -524,7 +524,7 @@ learnr::question_checkbox(
524
524
525
525
##### Subsetting Zusammenfassung
526
526
527
-
Fassen wir nochmal graphisch zusammen, um die Stärken und Schwächen der beiden Subsetting Arten zu verstehen:
527
+
Fassen wir nochmal grafisch zusammen, um die Stärken und Schwächen der beiden Subsetting Arten zu verstehen:
528
528
529
529
{width="25%"}
530
530
@@ -576,7 +576,7 @@ nrow(wg_df)
576
576
577
577
Wenn alles geklappt hat, hast du jetzt rausgefunden: 1) wie viele **Zeilen** der Data Frame hat 2) wie viele **Spalten** der Data Frame hat 3) hast dir in einem Vektor **Zeilen** und **Spaltenzahl** ausgeben lassen
578
578
579
-
"Wofür brauchen wir das?" - Wenn wir später mit unseren eigenen Daten arbeiten können wir so schnell sehen, wie viele Versuchspersonen oder Beobachtungen wir erhoben haben und wie viele Variablen wir haben. Wenn du gut aufgepasst hast, kannst du im Quizz dein Wissen testen:
579
+
"Wofür brauchen wir das?" - Wenn wir später mit unseren eigenen Daten arbeiten, können wir so schnell sehen, wie viele Versuchspersonen oder Beobachtungen wir erhoben haben und wie viele Variablen wir haben. Wenn du gut aufgepasst hast, kannst du im Quiz dein Wissen testen:
580
580
581
581
```{r dimension-quiz, echo = FALSE}
582
582
learnr::question_checkbox(
@@ -601,7 +601,7 @@ Merke: mit `dim()` kannst du dir die Dimensionen deines Data Frames anzeigen las
601
601
602
602
Manchmal möchtest du weitere Variablen (Spalten) oder auch Beobachtungen (Zeilen) zu einem bestehenden Data Frame hinzufügen. Dafür gibt es die zwei nützlichen Befehle `cbind()`n und `rbind()`.
603
603
604
-
Was diese tun kannst du aus dieser Abbildung schließen:
604
+
Was diese tun, kannst du aus dieser Abbildung schließen:
605
605
606
606
{width="40%"}
607
607
@@ -628,9 +628,9 @@ Vorsicht! Denk dran, dass Data Frames nur Variablen gleicher Länge aufnehmen k
628
628
Du bist dran!
629
629
630
630
::: aufgabe
631
-
Die Wg wurde renoviert und hat ein Zimmer mehr zur Verfügung. Bei dem heutigen Mietmarkt dauert es auch nicht lang und ein neues WG Mitglied zieht ein. Von der Bewerbung und mittels eurer Unterlagen hast du folgende Daten die hinzugefügt werden müssen: - `Fin`, wurde `1992` geboren, hat `kein Haustier` - das Zimmer ist `13qm` groß und `hat einen Balkon` - die Grundmiete ist weiterhin `5.23`
631
+
Die Wg wurde renoviert und hat ein Zimmer mehr zur Verfügung. Bei dem heutigen Mietmarkt dauert es auch nicht lang und ein neues WG Mitglied zieht ein. Von der Bewerbung und mittels eurer Unterlagen hast du folgende Daten, die hinzugefügt werden müssen: - `Fin`, wurde `1992` geboren, hat `kein Haustier` - das Zimmer ist `13qm` groß und `hat einen Balkon` - die Grundmiete ist weiterhin `5.23`
632
632
633
-
Lasse dir `wg_df` danach anzeigen, um zu überprüfen ob das neue WG Mitglied da ist.
633
+
Lasse dir `wg_df` danach anzeigen, um zu überprüfen, ob das neue WG Mitglied da ist.
0 commit comments