-
Notifications
You must be signed in to change notification settings - Fork 2
/
ha-06-projektarbeit.Rmd
213 lines (143 loc) · 10.5 KB
/
ha-06-projektarbeit.Rmd
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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
---
title: "Hausaufgabe 06 - Projektarbeit"
---
<script async defer data-domain="rstatszh.github.io/website" src="https://plausible.io/js/plausible.js"></script>
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
```{r}
library(knitr)
library(dplyr)
library(tidyr)
library(readr)
library(ggplot2)
library(forcats)
library(DBI)
library(palmerpenguins)
```
# Ziele
Diese Hausaufgabe hat die folgende Ziele:
- Ein RStudio Project mittels eines selbst erstellten GitHub Repositories auf dem eigenen Arbeitsgerät starten
- Daten für eine Projektarbeit identifizieren
- Mehr Erfahrungen mit dem Tranformieren und Visualisieren von Daten sammeln
- SQL Befehle in Code-chunks innerhalb einer R Markdown Datei ausführen
# Erste Schritte
Diese Hausaufgabe besteht aus zwei Teilen:
1. Projektarbeit (Pflicht)
2. Daten über Treibhausgase in der Stadt Zürich (Zum Teil Bonusmaterial)
Öffne deine Email Inbox und suche nach der Email mit dem Link für das GitHub Repo zu dieser Hausaufgabe (ha-06-projekarbeit).
# Übungen - Teil 1 - Projektarbeit
Im Anschluss an die sieben Kurseinheiten bekommt ihr die Gelegenheit als Teil eines kleinen Abschlussprojektes Unterstützung zu erhalten.
Dafür braucht es ein paar Vorraussetzungen:
1. R, RStudio und Git sind auf euren Arbeitsgeräten installiert
2. Daten für die Projektarbeit sind ausgewählt
3. Ein öffentliches (public) GitHub Repository wurde erstellt **oder** ein geschlossenes (private) GitHub Repository wurde erstellt zu welchem der GitHub Benutzer larnsce als Collaborator hinzugefügt wurde.
**Beachte:** Auch Projekte mit sensitiven und schützenswerten Daten können öffentlich publiziert werden. Dazu werden Ordner und/oder Dateien mit den zu schützenden Daten in der `.gitignore` Datei hinzugefügt. Somit wird erreicht, dass die Daten nicht zugänglich sind, jedoch der Code für die Arbeit mit den Daten, was deutlich zu einer transparenten Arbeitsweise beiträgt auch wenn die Ergebnisse nicht reproduzierbar sind. Dabei wird empfohlen sich innerhalb der Verwaltungseinheit mit den zuständigen Mitarbeiter_innen für Datenschutz in Verbindung zu setzen.
4. Das GitHub Repository auf das eigene Arbeitsgerät klonen und daraus ein RStudio Project machen
Diese Übung soll sicherstellen, dass all diese Vorraussetzungen erfüllt sind.
## Installation von R, RStudio und Git
1. Falls die Software noch nicht vorhanden ist, wende dich an die IT Unterstützung um die nötige Software installiert zu bekommen. Du kannst in der Zwischenzeit bis zu dem Punkt fortfahren an dem ich dich bitte RStudio auf deinem Arbeitsgerät zu öffnen.
Liste mit Software für IT: https://github.com/rstatsZH/kochbuch/tree/main/01-Installation
## Daten für das Projekt
Ideale Daten für das Projekt gibt es nicht, jedoch ist es sinnvoll nicht unbedingt Daten auszuwählen welche streng vertraulich sind, oder Daten welche Teil eines sehr grossen Projektes sind. Bereits öffentlich verfügbare Daten sind wertvoll wenn es euch wichtig ist das Projekt öffentlich und reproduzierbar zu publizieren. Das wichtigste Kritierium an die Daten ist jedoch, dass ihr Interesse daran habt den Datensatz zu erkunden und Fragen zu stellen und zu beantworten.
1. Einen Datensatz, oder mehrere Datensätze, für das Projekt identifizieren.
## GitHub Repository erstellen
Wie das geht hast du in [Übung 1 der Hausaufgabe aus Woche 5](https://rstatszh.github.io/website/ha-05-erstes-projekt.html#%C3%BCbung-1---erstelle-ein-eigenes-git-repository) gelernt. Falls du Schwierigkeiten hast meiner Anleitung zu folgen, melde dich umgehend und ich kann dich unterstützen.
Abweichend von der Anleitung ist Folgendes:
- 1 und 2. Schritt: Diese Schritte kannst du überspringen und das neue Repository unter deinem Benutzernamen erstellen. Beginne also mit dem 3. Schritt und erstelle ein neues Repository in deinem persönlichen Benutzer Account.
- 4. Schritt: Überlege dir hier einen eigenen, sinnvollen Namen für das Repository
- 6. Schritt: Entscheide hier selbst darüber ob du das Repository öffentlich (public) oder geschlossen (private) zugänglich machen möchtest.
Auch wird dieses Mal kein Project in der RStudio Cloud erstellt, sondern auf deinem eigenen Arbeitsgerät. Überspringe deshalb die Schritte 12 bis 17 und ersetze diese durch Folgendes:
- Öffne RStudio auf deinem Arbeitsgerät
- Klicke auf File > New Project. Ein neues Fenster öffnet sich.
```{r}
knitr::include_graphics("img/github-to-project-local/github-to-project-local.001.png")
```
- Klicke auf "Version Control", dann klicke auf "Git"
```{r}
knitr::include_graphics("img/github-to-project-local/github-to-project-local.002.png")
```
- Füge die URL aus deiner Zwischenablage im Feld "Repository URL" ein. Im Feld "Project directory name:" wird der Name des Repositories übernommen.
- Wähle über den Button "Browse..." den Ordner auf deinem Arbeitsgerät aus, in dem du das Repository speichern möchtest (**Tipp:** Ich empfehle einen Ordner names "gitrepos" zu erstellen, welcher sich so nah wie möglich am Stammpfad des Laufwerks (Lokaler Datenträger) auf deinem Arbeitsgerät befindet. Im Windows Betriebssystem ist dies üblicherweise "C:". As bietet sich an, an dem Ort 'C:\gitrepos' nur Ordner anzulegen, welche auch ein Git Repository sind. Dies erlaubt eine saubere Trennung zwischen allgemeinen Ordnern auf deinem Arbeitsgerät und solchen die ein Git Repository sind.
```{r}
knitr::include_graphics("img/github-to-project-local/github-to-project-local.003.png")
```
- Klicke auf "Create Project", was für dich die folgenden drei Dinge erstellt
- ein Ordner auf deinem Arbeitsgerät
- ein lokales Git Repository welches mit einem remote GitHub Repository verbunden ist
- ein RStudio Project
- Betrachte dein offenes RStudio Project
- Folge nun noch den Schritten 38 bis 43 aus der Hausaufgabe 5.
Als nächstes könntest du mittels eines Dateimanagers (z.B. Windows File Explorer) deine Daten für das Projekt in dieses Repository kopieren. Es empfiehlt sich dazu innerhalb des Repositories einen Ordner namens "data" zu erstellen und die Daten dort abzulegen.
```{r}
knitr::include_graphics("img/github-to-project-local/github-to-project-local.004.png")
```
Wie du nun weiter machst ist dir überlassen. Möchtest du nicht, dass die Daten welche lokal gespeichert sind auf GitHub auftauchen? Dann füge den Pfad an dem diese liegen zu deiner `.gitignore` Datei hinzu (siehe Screenshot und ersetze den Namen data ggf. durch den Namen den du für diesen Ordner gewählt hast.
```{r}
knitr::include_graphics("img/github-to-project-local/github-to-project-local.005.png")
```
Auch ist es nützlich eine README.md Datei zu erstellen und diese im Stammpfad des Repositories zu speichern. In der README kannst du dein Projekt beschreiben oder wichtige Vorraussetzungen für die Nutzung und Wiederverwendbarkeit deklarieren (Lizenzen).
Sobald du zufrieden bist mit dem Aufbau deines Projektordners kannst du deine Veränderung mittels den dir bekannten Schritten und unter dem Git Reiter oben rechts in RStudio zurück auf GitHub pushen.
# Übungen - Teil 2 - Treibhausgase
## Übung 1 - Daten importieren
Die Aufgaben für diese Übung sind in der Vorlage hinterlegt.
## Übung 2 - Daten transformieren und visualisieren
### 1. Pivoting
Die Daten sind derzeit in einem weiten Format. Das Ziel ist die Daten in ein langes Format zu bringen wobei nur die Spalte Jahr beibehalten wird und alle Spalten von Strom bis Heizoel_EL gedreht werden. Ich habe dir hier bereits etwas Code mit Lücken als Hilfestellung vorbereitet.
1. Erstelle ein neues Objekt in deiner Arbeitsumgebung (Environment), welches im langen Format ist in dem du die Lücken ausfüllst. Den Namen für das Objekt kannst du selbst auswählen.
2. Strick das Dokument und dann: git add, commit, push alle Veränderung zurück auf GitHub
```{r, eval=FALSE, echo=TRUE}
___ <- ___ %>%
____longer(
# In diesem Argument werden die Spalten ausgewählt welche gedreht werden
___ = !Jahr,
# In diesem Argument wird der Name für die neue Spalte definiert, welche
# die Namen aus den zuvor ausgewählten Spalten enthält
___ = "Energietraeger",
# In diesem Argument wird der Name für die neue Spalte definiert, welche
# die Werte aus den zuvor ausgewählten Spalten enhält
___ = "Emissionen"
)
```
### 2. Daten zusammenfassen und neue Variable erstellen
Die Aufgaben für diese Übung sind in der Vorlage für die Hausaufgabe hinterlegt.
### 3. Daten visualisieren 1
1. Starte mit dem Objekt, welches du in Schritt 3 der vorheringen Übung erstellt hast
2. Erstelle ein Säulendiagram und lege das Jahr auf die x-Achse und die Differenz der Emissionen zwischen den Jahren auf die y-Achse
3. **Bonus:** Warum ist auf der x-Achse immer nur für alle zehn Jahre ein Tick mit Beschriftung?
4. **Bonus:** Wandle den Typen der Variable "Jahr" in eine Variable mit dem Typ Faktor um bevor du den Plot erstellst
5. **Bonus:** Passe das Layout des Plots beliebig an
### 4. Daten visualisieren 2 (Bonus)
1. Nutze das Objekt welches du in "2.1 Pivoting" erstellt hast, und:
- Nutze die Funktion `group_by()` um die Daten nach dem Jahr zu gruppieren
- Nutze die Funktion `filter()` um in der Spalte Jahr nur das Jahr 1990 und das Jahr 2016 anzuzeigen
- Wieviele Wege fallen dir ein um auf das Ergebnis zu kommen?
2. Speicher das Ergebnis als ein neues Objekt in deiner Arbeitsumgebung (Environment) mit einem Namen deiner Wahl
3. Reproduziere folgendes verbundenes Säulendiagramm
```{r}
ghg <- read_csv("https://data.stadt-zuerich.ch/dataset/ugz_treibhausgasbilanz/download/ugz_treibhausgasbilanz.csv")
ghg_long <- ghg %>%
pivot_longer(cols = !Jahr,
names_to = "Energietraeger",
values_to = "Emissionen")
ghg_long %>%
filter(Jahr == max(Jahr) | Jahr == min(Jahr)) %>%
## plot
ggplot(mapping = aes(x = Jahr,
y = Emissionen,
color = Energietraeger)) +
geom_line(size = 1) +
geom_point(size = 3) +
# Plot Styling ab hier
labs(title = "Treibhausgasemissionen in der Stadt Zürich, 1990 und 2016",
subtitle = "inklusive internationalem Flugverkehr, ohne Klimakorrektur",
y = "Treibhausgasemissionen [t CO2eq/Person]",
x = NULL,
caption = "Daten: https://data.stadt-zuerich.ch/dataset/ugz_treibhausgasbilanz",
fill = "Energieträger") +
scale_x_continuous(limits = c(1990, 2016),
breaks = c(1990, 2016)) +
scale_color_brewer(type = "qual") +
theme_minimal() +
theme(panel.grid.minor = element_blank())
```