निश्चित रूप से इसका इरादा नहीं है? क्या यह ऐसा कुछ है जो dplyr
की कार्यक्षमता के अन्य हिस्सों में होता है और क्या मुझे चिंतित होना चाहिए? मुझे प्रदर्शन पसंद है और data.table
वाक्यविन्यास से नफरत है। क्या dplyr
और data.table
का कोई विकल्प है जो वर्तमान में उपयोग करने के लिए सुरक्षित है और अभी भी उच्च प्रदर्शन है?dplyr के left_join के साथ गलत व्यवहार?
A <- structure(list(ORDER = c(30305720L, 30334659L, 30379936L,
30406397L, 30407697L, 30431950L),
COST = c("0", "", "11430.52", "20196.279999999999", "0", "10445.99")),
.Names = c("ORDER", "COST"),
row.names = c(NA, 6L),
class = "data.frame")
B <- structure(list(ORDER = c(30334659, 30379936, 30406397, 30407697, 30431950),
AREA = c(0, 2339, 2162, 23040, 475466)),
.Names = c("ORDER", "AREA"),
row.names = c(4L, 8L, 11L, 12L, 15L),
class = c("tbl_df", "tbl", "data.frame"))
कचरा परिणाम:
left_join(A, B)
ORDER COST AREA
1 30305720 0 NA
2 30334659 NA
3 30379936 11430.52 NA
4 30406397 20196.279999999999 NA
5 30407697 0 NA
6 30431950 10445.99 NA
प्रभावी परिणाम:
merge(A, B, all.x=T, all.y=F)
ORDER COST AREA
1 30305720 0 NA
2 30334659 0
3 30379936 11430.52 2339
4 30406397 20196.279999999999 2162
5 30407697 0 23040
6 30431950 10445.99 475466
मैं आर संस्करण 3.1 का उपयोग कर रहा हूं। – stanekam
नोट यह प्रतीत होता है कि यह https://github.com/hadley/dplyr/issues/601 – mnel
ध्यान दें कि 'data.table' वाक्यविन्यास 'setDT (ए); setDT (बी); setkey (ए, ORDER) ; सेटकी (बी, ऑर्डर); ए [बी] '"प्रभावी परिणाम" प्रदान करने के लिए काम करता है। 'data.table' मशीन सहिष्णुता के बराबर कुंजी/समूह बनाता है। – mnel