2013-04-24 22 views
9

Ho bisogno di un vettore contenente i giorni della settimana, molto spesso, ma ho sempre digitare fuori:Come posso creare un vettore contenente i giorni della settimana?

days.of.week <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") 

questo è abbastanza facile perché è breve, ma c'è sempre la possibilità di errori di battitura. C'è un modo per creare un vettore che contenga i giorni della settimana a livello di programmazione?

+2

Un bell'albergo di fare questo usando le funzioni R è che prende in considerazione le impostazioni locali, ad es Giorni feriali francesi in un locale francese. –

risposta

9

ci si va, il vettore dei giorni della settimana "Lunedi", ..., "Domenica":

days.of.week <- weekdays(x=as.Date(seq(7), origin="1950-01-01")) 
10

Una possibilità:

days.of.week <- weekdays(Sys.Date()+0:6) 

Sempre a partire da Lunedi:

days.of.week <- weekdays(as.Date(4,"1970-01-01",tz="GMT")+0:6) 

Oppure si può semplicemente definire come si deve, ma nel tuo .Rprofile, in modo che sia sempre disponibile all'avvio.

+0

Il vettore cambierà in base al giorno in cui verrà eseguito? – outis

+0

L'ordine cambierebbe, comincerebbe sempre con il giorno della settimana che è oggi. –

+1

Sì, se lo si desidera in ordine, basta cambiare la data di inizio a una che è sempre lunedì. –

0

Mentre le risposte funzionali a base sono slick, ultimo commento di Joshua è spot-on. Se hai una variabile che usi regolarmente, puoi crearla nel tuo .Rprofile o caricarla da un file .Rdata, usando qualche riga nellocome load('daysofweek.rdata').

Nota che cambiare il primo giorno della settimana è così semplice come

neworder <- days.of.week[c(2:7,1)]

-1

in base alla data di oggi possiamo trovare anche giorni di una settimana

weekdays(as.Date(seq(7),origin=Sys.Date() - as.POSIXlt(Sys.Date())$wday)) 
[1] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" 
[7] "Sunday" 
Problemi correlati