मैं अपने डेटाफ्रेम में दो कॉलम को 'अच्छी' तिथि & समय वर्ग में बदलने का प्रयास कर रहा हूं, और अब तक बहुत सफलता नहीं मिली है इसके साथ। मैंने विभिन्न वर्गों (टाइमडेट, दिनांक, टाइमरीज़, पॉज़िक्स, पॉज़िक्सल्ट) की कोशिश की है लेकिन सफलता के बिना। शायद मैं सिर्फ स्पष्ट दिख रहा हूं और क्योंकि मैंने इतने सारे दृष्टिकोणों की कोशिश की है, मुझे नहीं पता कि अब और क्या है। मुझे उम्मीद है कि आप में से कुछ कुछ गलत कहां छोड़ सकते हैं जहां मैं गलत हूं।उच्चतम (नवीनतम) और निम्नतम (सबसे पुराना) दिनांक [आर]
लक्ष्य: मैं जल्द से जल्द और नवीनतम तारीख का उपयोग करके दो तिथियों के बीच अंतर की गणना करना चाहता हूं। मुझे यह सिर() और पूंछ() के साथ काम कर रहा है, लेकिन क्योंकि उन मानों को मेरे डेटा में सबसे पुरानी और नवीनतम तारीख आवश्यक नहीं है, मुझे एक और तरीका चाहिए। (मुझे डेटा को काम करने के क्रमबद्ध नहीं मिल सकते हैं, क्योंकि यह केवल तारीख के दिन डेटा को टाइप करता है।)
दूसरा लक्ष्य: मैं दैनिक प्रारूप से दिनांकों को परिवर्तित करना चाहता हूं (यानी 8-12 -2010) साप्ताहिक, मासिक, और वार्षिक स्तर (यानी '49 -2010 ',' दिसंबर -10 ', और बस' 2010 ') तक। यह प्रारूप सेटिंग्स (जैसे "% d-% m-% y") के साथ किया जा सकता है। क्या यह डेटा.फ्रेम को एक समय वर्ग में बदलने और सही प्रारूप में टाइमक्लास को बदलने के साथ किया जा सकता है (8-12-2010 -> प्रारूप ("% बी-% वाई") -> 'दिसंबर -10') , और फिर उस समय वर्ग को प्रत्येक माह के स्तर के साथ एक कारक में बदलना?
दोनों लक्ष्यों के लिए मुझे किसी भी समय डेटफ्रेम को किसी समय में परिवर्तित करने की आवश्यकता है, और यह वह जगह है जहां मैं कुछ कठिनाइयों में भाग गया।
मेरे dataframe इस तरह दिखता है:
> tradesList[c(1,10,11,20),14:15] -> tmpTimes4
> tmpTimes4
EntryTime ExitTime
1 01-03-07 10-04-07
10 29-10-07 02-11-07
11 13-04-07 14-05-07
20 18-12-07 20-02-08
यहाँ मैं क्या कोशिश की है की एक सारांश है:
> class(tmpTimes4)
[1] "data.frame"
> as.Date(head(tmpTimes4$EntryTimes, n=1), format="%d-%m-%y")
Error in as.Date.default(head(tmpTimes4$EntryTimes, n = 1), format = "%d-%m-%y") :
do not know how to convert 'head(tmpTimes4$EntryTimes, n = 1)' to class "Date"
> as.timeDate(tmpTimes4, format="%d-%m-%y")
Error in as.timeDate(tmpTimes4, format = "%d-%m-%y") :
unused argument(s) (format = "%d-%m-%y")
> timeSeries(tmpTimes4, format="%d-%m-%y")
Error in midnightStandard2(charvec, format) :
'charvec' has non-NA entries of different number of characters
> tmpEntryTimes4 <- timeSeries(tmpTimes4$EntryTime, format="%d-%m-%y")
> tmpExitTimes4 <- timeSeries(tmpTimes4$ExitTime, format="%d-%m-%y")
> tmpTimes5 <- cbind(tmpEntryTimes4,tmpExitTimes4)
> colnames(tmpTimes5) <- c("Entry","Exit")
> tmpTimes5
Entry Exit
[1,] 01-03-07 10-04-07
[2,] 29-10-07 02-11-07
[3,] 13-04-07 14-05-07
[4,] 18-12-07 20-02-08
> class(tmpTimes5)
[1] "timeSeries"
attr(,"package")
[1] "timeSeries"
> as.timeDate(tmpTimes5, format="%d-%m-%y")
Error in as.timeDate(tmpTimes5, format = "%d-%m-%y") :
unused argument(s) (format = "%d-%m-%y")
> as.Date(tmpTimes5, format="%d-%m-%y")
Error in as.Date.default(tmpTimes5, format = "%d-%m-%y") :
do not know how to convert 'tmpTimes5' to class "Date"
> format.POSIXlt(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in format.POSIXlt(tmpTimes5, format = "%d-%m-%y", usetz = FALSE) :
wrong class
> as.POSIXlt(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in as.POSIXlt.default(tmpTimes5, format = "%d-%m-%y", usetz = FALSE) :
do not know how to convert 'tmpTimes5' to class "POSIXlt"
> as.POSIXct(tmpTimes5, format="%d-%m-%y", usetz=FALSE)
Error in as.POSIXlt.default(x, tz, ...) :
do not know how to convert 'x' to class "POSIXlt"
TimeDate संकुल 'सीमा' के लिए एक समारोह है, तथापि, को बदलने तिथि वर्ग एक व्यक्तिगत उदाहरण के लिए काम करता है, लेकिन किसी कारण से डेटा फ्रेम के लिए नहीं:
> as.Date(tmpTimes4[1,1], format="%d-%m-%y")
[1] "2007-03-01"
> as.Date(tmpTimes4, format="%d-%m-%y")
Error in as.Date.default(tmpTimes4, format = "%d-%m-%y") :
do not know how to convert 'tmpTimes4' to class "Date"
इस बिंदु पर मुझे विश्वास है कि ऐसा करना असंभव है, इसलिए किसी भी विचार की अत्यधिक सराहना की जाएगी!
सादर, कुछ डमी डेटा के साथ
आप इस्तेमाल कर सकते हैं 'dput (tmpTimes4)' अपने कोड में सटीक डाटासेट उपयोग प्रदान करने के लिए। – Marek
@Marek: जवाब देने के लिए धन्यवाद! मुझे डंप के बारे में पता नहीं था, इसलिए टिप के लिए धन्यवाद। :) – Jura25