2016-04-07 7 views
1

Ich habe eine lange Reihe von POSIXct Zeitstempeln. Ich möchte für jeden Datensatz einen Tag, einschließlich des Wochentags, zurückgeben. Zum Beispiel:Wie erstelle ich einen Tag in R aus einem Vektor von POSIXct Zeitmarken?

[1] Sunday night 
[2] Sunday night 
[3] Sunday afternoon 
[4] Saturday night 
[5] Sunday afternoon 

... und so weiter.

Im Folgenden finden Sie eine kleine Auswahl der Daten:

my_dates <- as.POSIXct(c("2000-03-12 19:40:00 AEDT", 
          "2000-03-19 17:40:00 AEDT", 
          "2000-03-26 14:10:00 AEST", 
          "2000-04-01 19:40:00 AEST", 
          "2000-04-09 14:10:00 AEST", 
          "2000-04-16 14:40:00 AEST", 
          "2000-04-22 19:40:00 AEST", 
          "2000-04-30 14:10:00 AEST", 
          "2000-05-07 14:10:00 AEST", 
          "2000-05-14 14:10:00 AEST")) 

ich viele verschiedene Dinge ausprobiert haben, aber ich habe immer das Datumsformat am Ende verlieren.

Jede Hilfe würde sehr geschätzt werden. Dank

+0

Sie werden immer das Datumsformat verlieren als ‚Sonntag Abend‘ Objekt kein gültiges Datum ist. Es wird nur eine Zeichenfolge sein. – thelatemail

+0

Ich meine, ich verliere das Datum Format zwischen Operationen bei der Konvertierung der ursprünglichen Vektor von Zeitstempeln. –

Antwort

1

Einige kreative format ting und cut ting sollten Sie in der Lage, dort zu bekommen:

paste(
    format(my_dates, "%A"), 
    c("night","morn","afternoon","night")[ 
    cut(as.numeric(format(my_dates,"%H")), c(0,5,11,17,23)) 
    ] 
) 
# [1] "Sunday night"  "Sunday afternoon" "Sunday afternoon" "Saturday night" 
# [5] "Sunday afternoon" "Sunday afternoon" "Saturday night" "Sunday afternoon" 
# [9] "Sunday afternoon" "Sunday afternoon" 
+0

Wirklich elegante Lösung, danke! –

Verwandte Themen