Projek erstellen

Vorbereitung

Vor den eigentlichen Auswertungen müssen einige Vorbereitungen unternommen werden. Die Zeit, die man hier investiert, wird in den späteren Phasen 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önnen vor dem Wort “#” und nach dem Wort “####” eingefügt werden.

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

# Ich bin eine first level Überschrift ####

## Ich bin eine second level Überschrift ####

# Texte, vor denen ein # steht, erklaeren den Ablauf (nicht was, sondern warum)

# 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 / den ausgewählten Zeilen hinzufügen oder wieder löschen

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ält bei uns folgende Kapitel:

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

Bereitet euer Skript mit diesen Kapitel vor.

# .###########################################################################################
# TITEL ####
# Fallstudie Modul Research Methods, HS24. Autor/in ####
# .##########################################################################################

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

# Datenherkunft ####
# ...

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

In einem professionellen Bericht ist es angebracht, wenn alle 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, benötigten Bibliotheken.

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

# Benoetigte Bibliotheken ####
library("readr") # read data into r
library("ggplot2") # plot nice graphs
library("dplyr") # select data
library("lubridate") # Arbeiten mit Datumsformaten
library("suncalc") # berechne Tageszeiten abhaengig vom Sonnenstand
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("DHARMa") # Modeldiagnostik
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("glmmTMB")# zero-inflated model

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 bei euch vorhandenen Zähldaten (das unterscheidet sich von Gruppe zu Gruppe).

depo_start <- as.Date("2017-01-01")
depo_end <- as.Date("2023-12-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.