2013-04-24 63 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"