मैं निम्नलिखित समस्या: एक data.table में अंतराल गैर-अतिव्यापी, अंतराल के बीच अंतराल को रिपोर्ट का एक सेट दिया।का उपयोग कर अंतराल के बीच अंतराल को ढूँढना data.table
मैं एक का नेतृत्व समारोह या अंतराल समारोह की कमी के कारण एसक्यूएल में इस बार लागू किया है, फिर भी मैं data.table के साथ संघर्ष कर रहा हूँ। पूर्णता के लिए, मेरे पास here SQL कोड है। मुझे पता है कि कार्यक्षमता डेटा.table संस्करण 1.9.5 में लागू की गई है। changelog के अनुसार। तो क्या यह संभवतः विलय या लीग फ़ंक्शन के बिना विलय के बिना डेटा.table के साथ संभव है?
सिद्धांत रूप में, मैं मर्ज के उपयोग करते हुए (उर्फ मिलती है) के रूप में लंबे समय के रूप प्रदर्शन कष्ट नहीं होता है के खिलाफ पूरी तरह से नहीं कर रहा हूँ। मुझे लगता है कि इसका एक आसान कार्यान्वयन है, लेकिन मैं यह नहीं समझ सकता कि पिछले अंतराल को "मेरी" अंतराल तालिका के प्रारंभिक समय के रूप में कैसे प्राप्त किया जाए।
उदाहरण के लिए:
ID stime etime
1 2014-01-15 10:30:00 2014-01-15 11:00:00
1 2014-01-15 12:00:00 2014-01-16 11:30:00
2 2014-01-15 11:00:00 2014-01-15 12:30:00
2 2014-01-15 12:45:00 2014-01-15 13:30:00
नोटिस::
# The numbers represent seconds from 1970-01-01 01:00:01
dat <- structure(
list(ID = c(1L, 1L, 1L, 2L, 2L, 2L),
stime = structure(c(as.POSIXct("2014-01-15 08:00:00"),
as.POSIXct("2014-01-15 11:00:00"),
as.POSIXct("2014-01-16 11:30:00"),
as.POSIXct("2014-01-15 09:30:00"),
as.POSIXct("2014-01-15 12:30:00"),
as.POSIXct("2014-01-15 13:30:00")
),
class = c("POSIXct", "POSIXt"), tzone = ""),
etime = structure(c(as.POSIXct("2014-01-15 10:30:00"),
as.POSIXct("2014-01-15 12:00:00"),
as.POSIXct("2014-01-16 13:00:00"),
as.POSIXct("2014-01-15 11:00:00"),
as.POSIXct("2014-01-15 12:45:00"),
as.POSIXct("2014-01-15 14:30:00")
),
class = c("POSIXct", "POSIXt"), tzone = "")
),
.Names = c("ID", "stime", "etime"),
sorted = c("ID", "stime", "etime"),
class = c("data.table", "data.frame"),
row.names = c(NA,-6L)
)
dat <- data.table(dat)
इस में जो परिणाम अंतराल दिन भर में समान रूप रिपोर्ट कर रहे हैं।
तुम यहाँ एक पंक्ति याद आ रही नहीं कर रहे हैं या मैं कुछ याद कर रहा हूँ? –
ओर ध्यान दें: 'Dat <- data.table (डीएटी)' स्मृति की बर्बादी .. का उपयोग है 'setDT (डीएटी)' बजाय। – Arun
मुझे लगता है कि यह अपने पिछले प्रश्न: – Arun