Ich habe eine CSV Datei mit Log Informationen. Die Log Information können durch ein Timestamp geordnet werden. Für dir Auswertung benötige ich allerdings nur Log Informationen vollständiger Wochen (Montag → Sonntag). In der Datei befinden sich auch nicht vollständige Wochen.
Hier nun ein Lösungsweg in R nur die vollständigen Wochen zu ermitteln:
Hinweis: Die CSV Datei wurde in diedata.frame
Variablelog
eingelesen. Die Spalte mit dem Zeitstempel heissttimestamp
.
# Umwandeln des ISO 8601 Datums. log$timestamp <- as.POSIXct(strptime(log$timestamp, "%Y-%m-%dT%H:%M:%S")) # Hilfsfelder einfügen. log <- within(log, {YEAR <- as.numeric(format(log$timestamp, "%Y")) MONTH <- as.numeric(format(log$timestamp, "%m")) WEEK <- as.numeric(format(log$timestamp, "%V")) DOW <- ifelse((DOW = as.numeric(format(log$timestamp, "%w"))) == 0, 7, DOW) }) # Ziel data.frame. fullweeks <- data.frame() # Durchlaufen der eindeutigen Wochen. for (week in unique(log$WEEK)) { # Ermitteln der eindeutigen Wochentage der eindeutigen Wochen. days <- unique(log$DOW[log$WEEK == week]) # Enthält Vektor eindeutigen Eintrag für jeden Wochentag? if (length(days) == 7) { fullweeks <- rbind(fullweeks, log[log$WEEK == week,]) } }
fullweeks
enthält nun nur Logeinträge voller Wochen.
Rscript zum selber ausprobieren.
Geschrieben von sascha am 3. Oktober 2016 11:29:05 CEST