2013-03-16 5 views
9

ich eine Liste von Terminen wie diese haben:Extrakt Tag Anzahl der Jahre von den Daten

library(lubridate) 
my.dates <- c("03-01-2006", "28-01-2006", "12-01-2008", "02-02-2006", "03-03-2008") 
my.dates <- dmy(my.dates) 

ich extrahieren müssen, die Tag-Nummer des Jahres von jedem Datum wie unten, wo 1. JANUAR Tag 1:

Ich hatte eine gute Jagd rund um Google und SO, aber kann keine einfache Möglichkeit finden, dies zu tun. Hilfe geschätzt, danke.

+0

@DidzisElferts Das heißt * nicht * ein Duplikat - die Schlüsselfrage Hier sehen Sie die ** lubridate ** -Darstellung der Daten, die sich deutlich von den POSIXt-basierten Lösungen in dem von Ihnen vorgeschlagenen Duplikat unterscheidet. Ich habe gewählt, um in der Überprüfungswarteschlange offen zu lassen. –

Antwort

16

Sie yday Funktion von lubridate verwenden können, da Sie bereits verwenden es:

> yday(my.dates) 
# [1] 3 28 12 33 63 
+0

Danke. Entschuldigung für fehlende Frage schon gestellt. Ich verwende 'lubridate', also bleibe bei diesem Paket – luciano

14

Versuchen POSIXlt und seine attributes(my.dates)

my.dates = as.POSIXlt(my.dates,format="%d-%m-%Y") 
my.dates$mday 
[1] 3 28 12 2 3 
my.dates$yday 
[1] 2 27 11 32 62 
+0

Beachten Sie, dass die Yday-Werte 0-basiert sind. –

Verwandte Themen