2013-03-16 16 views
9

ho un elenco di date come questi:estratto numero del giorno dell'anno dalle date

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) 

ho bisogno di estrarre, il numero del giorno dell'anno dalle ogni data come sotto, dove 1 gennaio è il giorno 1:

day.number <- c(3, 28, 12, 33, 62) 

Ho avuto una buona ricerca su Google e SO ma non riesco a trovare un modo semplice per farlo. Aiuto apprezzato, grazie.

+0

@DidzisElferts che * non * è un duplicato - la questione chiave ecco la rappresentazione ** lubridate ** delle date, che è significativamente diversa dalle soluzioni basate su 'POSIXt' nel duplicato che proponi. Ho votato per lasciare aperto nella coda di revisione. –

risposta

16

è possibile utilizzare la funzione yday da lubridate in quanto si sta già usando:

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

Grazie. Scuse per la domanda mancante già posta. Sto usando 'lubridate' quindi resterò con quel pacchetto – luciano

14

Prova POSIXlt e le sue 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

Si noti che i valori di yday sono basati su 0. –

Problemi correlati