Einführung

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

  1. Ihr könnt das eingesetzte Zählgerät installieren und kennt die Vor- und Nachteile verschiedener Methoden.

  2. 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 laden
library("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 Datensaz
str(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 werden
outdoor <- na.omit(outdoor)

1. Anzahl Passagen pro Richtung und Standort

Musterlösung
## Berechnen der Anzahl Passagen, pro Richtung

sum(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 werden
sum(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 speichern
outdoor$Datum <- as.Date(outdoor$DatumUhrzeit, format="%Y-%m-%d")

# mit Base R
outdoor_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 Linien
  plot(outdoor_d$Datum, outdoor_d$Passagen_pro_Tag, 
       type = "b", 
       pch = 19, 
       col = "firebrick3", 
       xlab = "Datum", 
       ylab = "Anzahl Passagen pro Tag")

  # und eine Legende
  legend("topright", legend=c("Outdoor"),
         col=c("firebrick3"), lty = 1:2, cex=0.8)
}

# führe die funktion aus
plot_passages()

3. Unterschiede Werktag und Wochenende

Musterlösung
## Hinzufügen des Wochentags aufgrund Datum

outdoor_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 sollen
slieces <- 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 lables
lbls <- c("Wochenende", "Werktag")

# erstelle den Plot
pie(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.