2013-04-24 13 views
9

muszę wektor bardzo często zawierającą dni tygodnia, ale ja zawsze wpisać go:Jak mogę utworzyć wektor zawierający dni tygodnia?

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

Jest to dość łatwe, ponieważ jest krótki, ale zawsze istnieje możliwość literówek. Czy istnieje sposób na programowe utworzenie wektora zawierającego dni tygodnia?

+2

ładny obiekt w ten sposób używanie funkcji R polega na tym, że bierze pod uwagę ustawienia narodowe, np Francuskie dni powszednie w francuskim języku. –

Odpowiedz

9

tam idziesz, wektor dni powszednie "Poniedziałek", ..., "Sunday":

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

Jedną z możliwości:

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

Zawsze począwszy od poniedziałku:

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

Albo można po prostu zdefiniować go jak trzeba, ale w swojej .Rprofile, dlatego zawsze dostępna na starcie.

+0

Czy wektor zmieni się w zależności od dnia, w którym to uruchomisz? – outis

+0

Porządek się zmieni, zawsze zaczynał się od dnia tygodnia, w którym jest dzisiaj. –

+1

Tak, jeśli chcesz, aby było po kolei, zmień datę początkową na taką, która jest zawsze w poniedziałek. –

0

Podczas odpowiedzi funkcyjne oparte są śliskie, ostatni komentarz Joshua jest spot-on. Jeśli masz regularnie używaną zmienną, utwórz ją w swojej .Rprofile lub załaduj z pliku .Rdata, używając linii w .Rprofile, takiej jak load('daysofweek.rdata').

Należy pamiętać, że zmieniając pierwszy dzień tygodnia jest tak proste jak

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

-1

oparciu o dniu dzisiejszym możemy również odnaleźć dni tygodnia

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