Ich arbeite in R. Ich habe eine Datumssequenz und ich möchte zuordnen, ob jedes bestimmte Datum eine Schulzeit oder Schulferien ist. Ich plane, dies zu tun, indem ich eine Datenfeldspalte verwende, in der jede Zeile "Holiday" oder "Term" heißtR Kennzeichnung mehrerer Datumszeiträume in einer POSIXlt-Datumssequenz
Meine Vorgehensweise besteht darin, eine Zeitsequenz zu erstellen und jedes Feiertagsdatum einzeln mithilfe eines Vektors anzugeben; das erste Element ist das Startdatum des Urlaubs und das zweite ist das Ende des Urlaubs.
Ich erstellen dann eine if-or-Anweisung, um zu testen, ob die Zeit innerhalb eines der in den Vektoren angegebenen Urlaubsdaten liegt.
Hier ist mein Code so weit:
start <- as.POSIXlt("2015-10-10 00:00:00")
end <- as.POSIXlt("2016-03-31 00:00:00")
DateSeq <- seq(from=start, to=end, by="mins")
#Holidays defined using a vector with by start and end date
H1 <- c("2015-10-26", "2015-11-3") #October half term
H2 <- c("2015-12-16", "2016-01-05") #Christmas holiday
H3 <- c("2016-02-15", "2016-02-19") #Feb half term
H4 <- c("2016-03-24", "2016-03-31") #Easter holiday
date_table <- data.frame(Time = DateSeq)
if ((round(date_table$Time, units = "days")== H1[1] <> H1[2]) | (round(date_table$Time, units = "days") == H2[1] <> H2[2])) {
date_table$Holiday <- "Holiday"
} else {
date_table$Holiday <- "Term"
}
Wie Sie diesen Code und einfach nicht funktioniert sehen können Etiketten alle Zeilen als „Laufzeit“.
Deshalb frage ich mich folgende:
Wie ich den Datumsbereich in dem Urlaub Vektoren angeben kann, so kann es in der if-Anweisung verwendet werden?
Ob dies der beste Ansatz ist? Ich bin ziemlich neu in R und habe über Alternativen nachgedacht, wie zum Beispiel das Erstellen eines Satzes von einzelnen Sequenzen für Semester und Feiertage und dann das Zusammenfügen. Dieser Ansatz scheint jedoch fummelig, würde aber Ihre Gedanken zu schätzen wissen.
Danke für Ihre Hilfe.
Vielen Dank für Ihre Antwort, es funktioniert wirklich gut aber der letzte Tag des Urlaubs bleibt als Term bezeichnet. Ich habe versucht, die
alkey
Sie können die 'date_table $ Zeit
fishtank
Danke @fishtank – alkey