2013-04-24 40 views
9

我需要一個包含一週的天經常一個載體,但我總是鍵入出來:如何創建一個包含星期幾的矢量?

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

這是很容易的,因爲它是短暫的,但總有錯別字的可能性。有沒有辦法通過編程創建一個包含星期幾的矢量?

+2

這樣做的一個很好的屬性使用R函數是它考慮了語言環境,例如法語平日在法語區域。 – 2013-04-24 13:52:05

回答

9

你去那裏,平日的載體「星期一」,......,「星期天」:

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

一種可能性:

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

總是從星期一開始:

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

或者你可以把它定義爲你,但在你的.Rprofile,所以它總是可以在啓動時。

+0

這個矢量會根據你運行的這一天改變嗎? – outis 2013-04-24 13:47:55

+0

訂單會發生變化,它始終始於今天的一週中的某一天。 – 2013-04-24 13:49:20

+1

是的,如果您需要它,只需將開始日期更改爲總是星期一。 – 2013-04-24 13:49:33

0

雖然基於函數的答案是光滑的,約書亞的最後的評論是點上。如果您有定期使用的變量,請在.Rprofile中創建它,或從.Rdata文件加載它,使用.Rprofile中的某行(如load('daysofweek.rdata'))。

請注意,更改一週的第一天是那樣簡單

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

-1

基於今天的日期,我們還可以找到一個星期的日子

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