2013-04-24 10 views
9

मैं एक वेक्टर सप्ताह के दिनों युक्त बहुत बार की जरूरत है, लेकिन मैं हमेशा यह पता टाइप करें:मैं सप्ताह के दिनों वाले वेक्टर कैसे बना सकता हूं?

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

यह बहुत आसान है क्योंकि यह कम है, लेकिन वहाँ हमेशा लिखने की त्रुटियों की संभावना है। सप्ताह के दिनों को प्रोग्रामेटिक रूप से युक्त वेक्टर बनाने का कोई तरीका है?

+2

ऐसा करने का एक अच्छा संपत्ति आर कार्यों का उपयोग करना यह है कि यह लोकेल, उदाहरण के लिए ध्यान में रखता है फ्रांसीसी लोकेल में फ्रेंच सप्ताहांत। –

उत्तर

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

+0

ऑर्डर बदल जाएगा, यह हमेशा सप्ताह के दिन से शुरू होगा जो आज है। –

+1

हां, यदि आप इसे क्रम में चाहते हैं, तो बस प्रारंभ तिथि को हमेशा सोमवार को बदलें। –

0

जबकि समारोह आधारित जवाब चालाक हैं, यहोशू के अंतिम टिप्पणी स्पॉट पर है। यदि आपके पास एक वेरिएबल है जिसे आप नियमित रूप से उपयोग करते हैं, तो इसे .Rprofile में बनाएं या इसे .Rprofile में load('daysofweek.rdata') जैसी कुछ पंक्तियों का उपयोग करके .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" 
संबंधित मुद्दे