Gabi und Sascha
Kategorien : Alle | Berlin | Bücher | Fotografie | Java | Linkhalde | Weichware | Verfassung

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.