ऐसा लगता है कि sqldf में एक समय क्षेत्र बग है। यह (क्रैन पर अभी तक नहीं है, लेकिन आप इस तरह इसे आज़मा सकते हैं) sqldf संस्करण 0.4-6.2 में अब तय किया जाना चाहिए:
library(sqldf)
source("http://sqldf.googlecode.com/svn/trunk/R/sqldf.R")
before <- data.frame(ct_sys = Sys.time()); before
after <- sqldf('select * from before'); after
यहां तक कि sqldf("select * from before", method = "raw")
हालांकि कि एक अंकीय कॉलम वापस आ जाएगी काम करेंगे (कर के बिना आप जो POSIXct में परिवर्तित कर सकते हैं) और अन्य कॉलम को भी प्रभावित कर सकते हैं। यहाँ method = "raw"
का उपयोग करने का एक उदाहरण है। ध्यान दें कि दोनों ही मामलों में हम 1330661786.181
मिलती है:
> library(sqldf)
>
> before <- data.frame(ct_sys = Sys.time()); dput(before)
structure(list(ct_sys = structure(1330661786.181, class = c("POSIXct",
"POSIXt"))), .Names = "ct_sys", row.names = c(NA, -1L), class = "data.frame")
>
> after <- sqldf('select * from before', method = "raw"); dput(after)
structure(list(ct_sys = 1330661786.181), .Names = "ct_sys", row.names = 1L, class = "data.frame")
संपादित करें: का उपयोग कर method = "raw"
स्रोत
2012-03-02 01:19:01
धन्यवाद का जोड़ा उदाहरण! Http स्रोत से पैच काम करता था, और मैं इसका उपयोग करूंगा। दूसरा एक कच्चे में कन्वर्ट किया था, लेकिन कच्चे संख्या अभी भी एक ही है कि, जब वापस POSIXct को फिर से पात्र चयन, जीएमटी में था करने के लिए बदल गया था। धन्यवाद, मैट। – mpettis
सुझाएँ आप की जाँच कैसे आप इसे वापस बदल दिया। जैसा कि आप कोड में देखे गए कोड से देख सकते हैं, यह समान संख्याओं को वापस देता है। –