Projektierung

Veröffentlichungsdatum

17. Oktober 2023

Vorbereitung

Vor den eigentlichen Auswertungen müssen einige Vorbereitungen unternommen werden. Die Zeit, die man hier investiert, wird in der späteren Projektphase um ein Mehrfaches eingespart.

Wie im Unterricht am Morgen empfehle auch ich mit Projekten zu arbeiten, da diese sehr einfach ausgetauscht (auf verschiedene Rechner) und somit auch reproduziert werden können. Wichtig ist, dass es keine absoluten Arbeitspfade sondern nur relative gibt. Der Datenimport (und -export) kann mithilfe dieser relativen Pfade stark vereinfacht werden. –> Kurz gesagt: Projekte helfen alles am richtigen Ort zu behalten (mehr zur Arbeit mit Projekten: Link).

  • Erstellt an einem passenden Speicherort (evtl. onedrive für das gemeinsame Arbeiten an einem Projekt) ein neues Projekt mit einem treffenden Namen:

–> File / New Project

Aufgabe 1: Projektaufbau

Hinweise:

Nutzt für allen Text, welcher nicht im Code integriert ist, das Symbol #. Wenn ihr den Text als Titel definieren wollt, so dass er in der Übersicht erscheint, könnnen vor dem Wort “#” und nach dem Wort “####” eingefügt werden.

# Texte, vor denen ein # und nach denen #### stehen, sind Überschriften

# Ich bin eine Überschrift ####

# Texte, vor denen ein # steht, erklaeren den Ablauf

# Dann folgen die Arbeitsschritte
1 + 1

# Wenn man auf "Outline" klickt (oder CTRL + SHIFT + O),
# öffnet sich die Übersicht zu den Überschriften

Tipps:

  • Alt + - = <-

  • Ctrl + Shift + C = # vor der ausgewählten Zeile

Aufbau eines Skripts

Zuerst immer den Titel des Projekts sowie den Autor/ die Autorin des Skripts nennen. Hier soll auch die Herkunft der Daten ersichtlich sein und falls externe Daten verwendet werden, sollte geklärt werden, wer Dateneigentümer ist (WPZ und Meteo Schweiz).

Im Skript soll immer die Ordnerstruktur des Projekts genannt werden. So kann der Arbeitsvorgang auf verschiedenen Rechnern einfach reproduziert werden (ich verwende hier ein Projektordner mit den Unterordnern __scripts, data, results).

Beschreibt zudem kurz die verwendeten Meteodaten (siehe dazu Metadata Meteodaten, –> order_XXX_legend.txt)

Ein Skript kann in R eigentlich immer (mehr oder weniger) nach dem selbem Schema aufgebaut sein. Dieses Schema enthällt bei uns folgende Kapitel:

  1. Metadaten und Definitionen
  2. Datenimport,
  3. Vorbereitung,
  4. Deskriptive Analyse und Visualisierung und
  5. Multifaktorielle Analyse und Visualisierung.

Bereitet euer Skript mit diesen Kapitel vor.

# .###########################################################################################
# Einfluss von COVID19 auf das Naherholungsverhalten in WPZ ####
# Fallstudie Modul Research Methods, HS22. Autor/in ####
# .##########################################################################################

# .##########################################################################################
# METADATA UND DEFINITIONEN ####
# .##########################################################################################

# Datenherkunft ####
# ...

# .##########################################################################################
# 1. DATENIMPORT #####
# .##########################################################################################

In einem Bericht ist es schön, wenn die Abbildung einheitlich sind. Dafür braucht es u.a. eine Farbpalette. Ich definiere meine Auswahl bereits hier; das hat den Vorteil, dass man die Farbnamen nur einmal schreiben muss und später die selbst definierte Palette unter der Variable “mycolors” abrufen kann.

mycolors <- c("orangered", "gold", "mediumvioletred", "darkblue")

Aufgabe 2: Laden der Bibliotheken

  • Lädt nun die nachfolgenden, benoetigten Bibliotheken.

  • Diese habt ihr, falls nötig, im Kapitel Vorbereitung installiert.

# Benoetigte Bibliotheken ####
library("ggplot2") # Data wrangling und pipeing
library("lubridate") # Arbeiten mit Datumsformaten
library("ggpubr") # to arrange multiple plots in one graph
library("PerformanceAnalytics") # Plotte Korrelationsmatrix
library("MuMIn") # Multi-Model Inference
library("AICcmodavg") # Modellaverageing
library("fitdistrplus") # Prueft die Verteilung in Daten
library("lme4") # Multivariate Modelle
library("blmeco") # Bayesian data analysis using linear models
library("sjPlot") # Plotten von Modellergebnissen (tab_model)
library("lattice") # einfaches plotten von Zusammenhängen zwischen Variablen
library("readr")

Aufgabe 3: Zeitliche Definitionen

Wir lesen später zwei verschiedene Datensätze ein. Beide sollen exakt denselben Zeitraum umfassen. Definiert dazu den ersten und letzten Tag gemäss den vorhandenen Zähldaten.

depo_start <- as.Date("2017-01-01")
depo_end <- as.Date("2022-7-31")

Ein Teil unserer Auswertungen ist der Einfluss der Corona-Lockdown auf das Besuchsverhalten.

-Wir müssen also Start und Ende der beiden Lockdowns in der Schweiz definieren:

lock_1_start_2020 <- as.Date("2020-03-16")
lock_1_end_2020 <- as.Date("2020-05-11")

lock_2_start_2021 <- as.Date("2020-12-22")
lock_2_end_2021 <- as.Date("2021-03-01")

Ebenfalls müssen die erste und letzte Kalenderwoche der Untersuchungsfrist definiert werden. Diese werden bei wochenweisen Analysen ausgeklammert da sie i.d.R. unvollständig sind (das ist ein späterer Arbeitsschritt). Geht wie oben vor. Tipp: der Befehl isoweek() liefert euch die Kalenderwoche.

Ferienzeiten können einen grossen Einfluss auf das Besucheraufkommen haben. Die relevanten Ferienzeiträume müssen daher bekannt sein (heruntergeladen von https://www.schulferien.org/schweiz/ferien/2020/).

Lest das bereitgestellte .csv mit den Ferienzeiträumen ein und speichert es unter schulferien.

schulferien <- read_delim("datasets/fallstudie_s/ferien.csv", ",")

Nun sind alle Vorbereitungen gemacht, die Projektstruktur aufgebaut und die eigentliche Arbeit kann im nächsten Schritt beginnen.