2013-04-24 22 views
9

Tôi cần một vector chứa các ngày trong tuần rất thường xuyên, nhưng tôi luôn luôn gõ nó ra:Làm cách nào để tạo một vectơ chứa các ngày trong tuần?

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

này là khá dễ dàng vì nó ngắn, nhưng luôn có khả năng xảy ra lỗi chính tả. Có cách nào để tạo một vectơ chứa các ngày trong tuần theo lập trình không?

+2

Một tài sản tốt đẹp để làm điều này sử dụng các hàm R là nó sẽ tính đến ngôn ngữ, ví dụ Các ngày trong tuần của Pháp bằng tiếng Pháp. –

Trả lời

9

Có bạn đi, các vector của các ngày trong tuần "Monday", ..., "Sunday":

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

Một khả năng:

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

Luôn luôn bắt đầu từ ngày Thứ Hai:

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

Hoặc bạn chỉ có thể xác định nó như bạn có, nhưng trong .Rprofile của bạn, vì vậy nó luôn luôn có sẵn khi khởi động.

+0

Biến đổi véc tơ có phụ thuộc vào ngày bạn chạy cái này không? – outis

+0

Thứ tự sẽ thay đổi, nó sẽ luôn bắt đầu với ngày trong tuần mà nó là ngày hôm nay. –

+1

Có, nếu bạn muốn theo thứ tự, chỉ cần thay đổi ngày bắt đầu thành ngày thứ hai. –

0

Trong khi các câu trả lời dựa trên chức năng là slick, chú thích cuối cùng Giô-suê là chỗ-on. Nếu bạn đã có một biến bạn sử dụng thường xuyên, hoặc tạo ra nó trong .Rprofile của bạn hoặc tải nó từ một file .Rdata, sử dụng một số dòng trong .Rprofile như load('daysofweek.rdata').

Lưu ý rằng việc thay đổi ngày đầu tiên của tuần này là đơn giản như

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

-1

Dựa trên ngày hôm nay chúng ta cũng có thể tìm thấy ngày một tuần

weekdays(as.Date(seq(7),origin=Sys.Date() - as.POSIXlt(Sys.Date())$wday)) 
[1] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" 
[7] "Sunday" 
Các vấn đề liên quan