Es gibt eine Vielzahl an möglichen Methoden zur Erfassung der Besuchszahlen. Automatische Zählgeräte bieten die Möglichkeit, lange und durchgehende Zeitreihen zu erfassen. Inputs dazu, wie diese ausgewertet werden können, erhält ihr in dieser Aufgabe.
Ziele
Ihr könnt das eingesetzte Zählgerät installieren und kennt die Vor- und Nachteile verschiedener Methoden.
Ihr könnt die generierten Daten explorativ und deskriptiv auswerten.
Grundlagen
Die Geräte werden gemeinsam auf dem Campus Grüntal platziert.
Datenschutz ist ein wichtiges Thema. Die eingesetzten Geräte erfassen keine Personendaten, sondern nur Bewegungen. Es handelt sich um Pyroelektrische Infrarotsensoren, welche auf den Temperaturunterschied reagieren, wenn sich eine Person vor der Linse bewegt. Insofern handelt es sich, vereinfacht gesagt, um Bewegungsmelder.
Auswertung
Bearbeitung NACH den Felderhebungen
Aufgabe 1: Vorarbeiten
Oftmals möchte man direkt mit den Auswertungen in R beginnen, weiss aber selbst noch nicht genau, was eigentlich dargestellt werden soll. Darum macht es Sinn, einen Schritt zurückzutreten und sich zuerst konzeptionell zu überlegen, was mit den Daten eigentlich dargestellt werden soll.
Überlegt euch mögliche Darstellungsformen für 1. die Anzahl Passagen pro Richtung und Standort, 2. den Verlauf der Zählungen pro Tag über die gesamte Untersuchungsdauer und 3. die Unterschiede Werktag und Wochenende am untersuchten Standort.
Skizziert eure Ideen mittels Stift und Papier (oder digital) in Kleingruppen.
Individuelle Besprechung der Ideen und anschliessende Umsetzung in R.
Aufgabe 2: Darstellung in R
R bietet sehr viele Optionen zur Analyse und zur Darstellung der Daten. Nehmt bitte den bereitgestellten Datensatz zur Hand und visualisiert eure Ideen mit R.
Untenstehend sind einige Ideen zur Umsetzung:
Daten einlesen und Vorbereiten
Musterlösung
## benötigte Bibliothek laden# zuerst muss diese installiert sein. folgende Zeile müsst ihr nur das erste Mal ausführen# install.packages("readr")# WENN installiert, DANN ladenlibrary("readr") # zum Einlesen von .csv-Dateien mit read_delim## Datensatz einlesen# dabei speichere ich ihn gleich als Variable ab.outdoor <-read_delim("datasets/fallstudie_s/Felderhebungen/Besuchszahlen_Gruental.csv")## Datum und Uhrzeit# das Datum und die Uhrzeit sind in einer Spalte gespeichert. # R liest das als "Buchstaben" ein. Wir definieren es als Datum mit as.POSIXct aus base R# dies ist eine mächtige Funktion, welche auch im späteren Verlauf der Fallstudie noch# eine wichtige Rolle spielen wird. # Damit sie funktioniert, ist es wichtig, dass das Format so eingegeben wird, # wie es im .csv ersichtlich ist.outdoor$DatumUhrzeit <-as.POSIXct(outdoor$DatumUhrzeit, format ="%d.%m.%Y %H:%M")# d = Tag# m = Monat# Y = Jahr# H = Stunde# M = Minute# prüfen des Aufaus Datensazstr(outdoor)# hat es im Datensatz noch fehlende Werte?sum(is.na(outdoor)) # Falls "0", dann gibt es keine NA's im Datendatz# falls es noch NA hat, dann müssen diese entfernt werdenoutdoor <-na.omit(outdoor)
1. Anzahl Passagen pro Richtung und Standort
Musterlösung
## Berechnen der Anzahl Passagen, pro Richtungsum(outdoor$IN)# Wiederholung von diesem Befehl für die weiteren Standorte / Richtungen## Berechnung der Anzahl Passagen pro Standort insgesamt# in der Funktion sum können weitere Operationen ausgeführt werdensum(outdoor$IN + outdoor$OUT)
2. Verlauf der Zählungen pro Tag über die gesamte Untersuchungsdauer
Musterlösung
## Berechnung der Anzahl Passagen / Tag# zuerst müssen wir noch das Datum in einer eigenen Spalte speichernoutdoor$Datum <-as.Date(outdoor$DatumUhrzeit, format="%Y-%m-%d")# mit Base Routdoor_d <-aggregate(IN + OUT ~ Datum, data = outdoor, sum)names(outdoor_d)[2] <-"Passagen_pro_Tag"# oder dann mit der library dplyr aus dem tidyverse universe# --> das Ergebnis ist dasselbe, der Weg unterscheidet sich. Ich zeige beide Methoden, da wir später # sehr viel mit tidyverse arbeiten werden. Die Inputs dazu am morgen folgen aber erst später.library("dplyr")outdoor_d <- outdoor %>%group_by(Datum) %>%summarise(Passagen_pro_Tag =sum(IN + OUT))## Grafische Darstellung des Verlaufs# Ich verwende hier eine Funktion, in welcher alle Befehle zusammen durchgeführt werden. # So stelle ich sicher, dass die zweite Linie dem ersten, vor mir spezifizierten Plot hinzugefügt wird.plot_passages <-function() {# zeige zuerst outdoor, Punkte und Linienplot(outdoor_d$Datum, outdoor_d$Passagen_pro_Tag, type ="b", pch =19, col ="firebrick3", xlab ="Datum", ylab ="Anzahl Passagen pro Tag")# und eine Legendelegend("topright", legend=c("Outdoor"),col=c("firebrick3"), lty =1:2, cex=0.8)}# führe die funktion ausplot_passages()
3. Unterschiede Werktag und Wochenende
Musterlösung
## Hinzufügen des Wochentags aufgrund Datumoutdoor_d$weekday_status <-weekdays(outdoor_d$Datum) %in%c("Samstag", "Sonntag")## Kuchendiagramm der Anzahl Passagen für Werktag und Wochenende# erstelle zuerst die einzelnen "Stücke", welche in Diagramm dargestellt werden sollenslieces <-c(sum(outdoor_d$Passagen_pro_Tag[outdoor_d$weekday_status=="TRUE"]),sum(outdoor_d$Passagen_pro_Tag[outdoor_d$weekday_status=="FALSE"]))# definiere die lableslbls <-c("Wochenende", "Werktag")# erstelle den Plotpie(slieces, labels = lbls, main ="outdoor",col =c("firebrick3", "lightblue"))
–> Erklärt dem Plenum nächste Woche was ihr gemacht habt, was eure Daten zeigen und präsentiert eure Daratellungen.