Gabi und Sascha
Kategorien : Alle | Berlin | Bücher | Fotografie | Java | Linkhalde | Weichware | Verfassung
[LIND WIRFT IM SCHNEETREIBEN SCHNEEBALL AUF FOTOGRAFEN. SCHNEEBALL AUF BILD KURZ VOR DEM FOTOGRAFEN ZU SEHEN. SCHNEETREIBEN MACHT BILD GRAU IN GRAU. NUR KNID IM BLAUEN ANORAK UND GELBER PUDELMÜTZE BRING FARBE INS BILD.]
Hintergrund
Schneefall auf Brocken am 19. Oktober 2016.

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 die data.frame Variable log eingelesen. Die Spalte mit dem Zeitstempel heisst timestamp.

    # 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.