मैं ओवरलैपिंग अंतराल ढूंढने की कोशिश कर रहा हूं और dplyr::left_join()
के साथ अंतराल डेटा में शामिल होने का निर्णय लिया ताकि मैं lubridate::int_overlaps()
के साथ अंतराल की तुलना उसी आईडी द्वारा हर दूसरे अंतराल के साथ कर सकूं।अंतराल के साथ दो डेटा फ्रेम में शामिल होना misbehaves?
यहां मैं व्यवहार करने के लिए left_join()
की अपेक्षा करता हूं। तीन पंक्तियों के साथ दो tibbles एक 9 के साथ tibble पंक्तियों के रूप में पार:
library(tidyverse)
tibble(a = rep("a", 3), b = rep(1, 3)) %>%
left_join(tibble(a = rep("a", 3), c = rep(2, 3)))
Joining, by = "a"
# A tibble: 9 x 3
a b c
<chr> <dbl> <dbl>
1 a 1 2
2 a 1 2
3 a 1 2
4 a 1 2
5 a 1 2
6 a 1 2
7 a 1 2
8 a 1 2
9 a 1 2
और यहाँ कैसे एक ही कोड अंतराल के साथ बर्ताव करता है। मैं नौ पंक्तियां प्राप्त लेकिन पंक्तियों पार नहीं करते जैसे वे ऊपर कार्य करें:
tibble(a = rep("a", 3), b = rep(make_date(2001) %--% make_date(2002), 3)) %>%
left_join(tibble(a = rep("a", 3), c = rep(make_date(2002) %--% make_date(2003))))
Joining, by = "a"
# A tibble: 9 x 3
a b c
<chr> <S4: Interval> <S4: Interval>
1 a 2001-01-01 UTC--2002-01-01 UTC 2002-01-01 UTC--2003-01-01 UTC
2 a 2001-01-01 UTC--2002-01-01 UTC 2002-01-01 UTC--2003-01-01 UTC
3 a 2001-01-01 UTC--2002-01-01 UTC 2002-01-01 UTC--2003-01-01 UTC
4 a NA--NA NA--NA
5 a NA--NA NA--NA
6 a NA--NA NA--NA
7 a NA--NA NA--NA
8 a NA--NA NA--NA
9 a NA--NA NA--NA
मुझे लगता है कि यह अनपेक्षित है, लेकिन मैं कुछ कमी हो सकती है? या यह एक बग है?
मैं lubridate 1.7.1, tibble 1.3.4 और dplyr 0.7.4 का उपयोग कर रहा हूं।
मैं इस के आसपास नहीं शामिल होने से पहले अंतराल के लिए आरंभ और समाप्ति तिथि परिवर्तित करके प्राप्त कर सकते हैं रिपोर्ट की है। – pasipasi