2013-04-13 6 views
10

बहुत से लोग पूछते हैं कि समय को कैसे पट्टी और तारीख रखना है, लेकिन दूसरी तरफ क्या है? यह देखते हुए:तिथि को पट्टी करें और समय रखें

myDateTime <- "11/02/2014 14:22:45" 

मैं देखना चाहेंगे: आवश्यक

myTime 
[1] "14:22:45" 

समय क्षेत्र नहीं।

मैं पहले से ही (अन्य उत्तर से)

as.POSIXct(substr(myDateTime, 12,19),format="%H:%M:%S") 

[1] "2013-04-13 14:22:45 NZST"

की कोशिश की है उद्देश्य कई से अधिक दर्ज की गई घटनाओं का विश्लेषण करने के लिए है दिन के समय के अनुसार दिन।

धन्यवाद

संपादित करें:

यह पता चला कि वहाँ कोई शुद्ध "समय" वस्तु है, तो हर बार यह भी एक तारीख होना आवश्यक है।

अंत में मैं

as.POSIXct(as.numeric(as.POSIXct(myDateTime)) %% 86400, origin = "2000-01-01") 

बजाय चरित्र समाधान का इस्तेमाल किया है, क्योंकि मैं परिणामों पर गणित की ज़रूरत है। यह समाधान मेरे मूल के समान है, सिवाय इसके कि तारीख को इस मामले में लगातार "2000-01-01" नियंत्रित किया जा सकता है, जबकि मेरे प्रयास ने रनटाइम पर वर्तमान दिनांक का उपयोग किया था।

+1

मैं अंततः क्रॉन पर ठोकर खा गया, जिसमें कक्षा "समय" का उद्देश्य है। यह अतिरिक्त जोड़ देता है, उदा। 18:00 + 12:00 = 1.25 दिन। – nacnudus

+0

आप 'प्रारूप()', यानी 'hms :: as.hms (x) ' – Von

उत्तर

4

यदि आपकी समस्या के लिए जीएमटी दिवस के भीतर का समय उपयोगी है, तो आप शेष मॉड्यूल 86400 (दिन में सेकंड की संख्या) लेते हुए शेष ऑपरेटर %% के साथ प्राप्त कर सकते हैं।

stamps <- c("2013-04-12 19:00:00", "2010-04-01 19:00:01", "2018-06-18 19:00:02") 
as.numeric(as.POSIXct(stamps)) %% 86400 
## [1] 0 1 2 
+0

जादू संख्या से प्यार करें ['60 * 60 * 24'] (https://www.google.com/search?q=60*60*24)। – Jim

17

मुझे लगता है कि आप format फ़ंक्शन की तलाश में हैं।

(x <- strptime(myDateTime, format="%d/%m/%Y %H:%M:%S")) 
#[1] "2014-02-11 14:22:45" 
format(x, "%H:%M:%S") 
#[1] "14:22:45" 

character, नहीं "समय" है यही कारण है, लेकिन यह है कि अगर आप से क्या मतलब है aggregate की तरह कुछ के साथ काम करेगा "केवल दिन के समय से कुछ दिनों में दर्ज की घटनाओं का विश्लेषण।"

+0

पर कॉल करने के बाद' hms' पैकेज का भी उपयोग कर सकते हैं मुझे स्ट्रिपटाइम फ़ंक्शन में कोई समस्या आ रही है। अगर मैं इस तरह की तारीख से पहले एक टेक्स्ट जोड़ता हूं: स्ट्रिपटाइम ("हैलो ट्यू, 23 मार्च 2010 14:36:38 -0400", "% ए,% डी% बी% वाई% एच:% एम:% एस% z ") #NA कोई विचार कहां है – Ankit

+0

@ एंकिट आपको 'प्रारूप' तर्क में इसके लिए खाता है। इसे आज़माएं: 'strptime ("हैलो ट्यू, 23 मार्च 2010 14:36:38 -0400", "हैलो% ए,% डी% बी% वाई% एच:% एम:% एस% जेड") ' – GSee

+0

@ जीएसई ग्रेट जवाब। यह वही है जिसे मैं देख रहा था। – Gandalf

संबंधित मुद्दे