इस विकिपीडिया लेख SQL join के बाद मैं स्पष्ट रूप से देखना चाहता था कि हम डेटा.table के साथ कैसे जुड़ सकते हैं। प्रक्रिया में हम एनएएस के साथ जुड़ते समय एक बग उजागर कर सकते हैं।डेटाटेबल आंतरिक/बाहरी एनए के साथ डबल बग प्रकार के कॉलम में शामिल हो?
R) X = data.table(name=c("Raf","Jon","Ste","Rob","Smi","Joh"),depID=c(31,33,33,34,34,NA),key="depID")
R) Y = data.table(depID=c(31,33,34,35),depName=c("Sal","Eng","Cle","Mar"),key="depID")
R) X
name depID
1: Joh NA
2: Raf 31
3: Jon 33
4: Ste 33
5: Rob 34
6: Smi 34
R) Y
depID depName
1: 31 Sal
2: 33 Eng
3: 34 Cle
4: 35 Mar
वाम बाहरी शामिल हों
R) merge.data.frame(X,Y,all.x=TRUE)
depID name depName
1 31 Raf Sal
2 33 Jon Eng
3 33 Ste Eng
4 34 Rob Cle
5 34 Smi Cle
6 NA Joh <NA>
merge.data.table
उत्पादन एक ही परिणाम नहीं करते हैं और दिखाते हैं कि मुझे लगता है कि lign 2.
R) merge(X,Y,all.x=TRUE)
depID name depName
1: NA Joh Eng
2: 31 Raf NA
3: 33 Jon Eng
4: 33 Ste Eng
5: 34 Rob Cle
6: 34 Smi Cle
R) Y[X] #same -> :(
depID depName name
1: NA Eng Joh
2: 31 NA Raf
3: 33 Eng Jon
4: 33 Eng Ste
5: 34 Cle Rob
6: 34 Cle Smi
सही बाहरी शामिल हों ही
की तरह लग रहाR) merge.data.frame(X,Y,all.y=TRUE)
depID name depName
1 31 Raf Sal
2 33 Jon Eng
3 33 Ste Eng
4 34 Rob Cle
5 34 Smi Cle
6 35 <NA> Mar
R) merge(X,Y,all.y=TRUE)
depID name depName
1: NA Joh Eng
2: 31 NA Sal
3: 33 Jon Eng
4: 33 Ste Eng
5: 34 Rob Cle
6: 34 Smi Cle
7: 35 NA Mar
अंदरूनी (प्राकृतिक) शामिल हों
R) merge.data.frame(X,Y)
depID name depName
1 31 Raf Sal
2 33 Jon Eng
3 33 Ste Eng
4 34 Rob Cle
5 34 Smi Cle
R) merge(X,Y)
depID name depName
1: NA Joh Eng
2: 33 Jon Eng
3: 33 Ste Eng
4: 34 Rob Cle
5: 34 Smi Cle
के रूप में एक पूर्व, हटाए गए जवाब में सूचना मिली थी (जो वास्तव में एक टिप्पणी थी), मर्ज सही ढंग से काम करता है अगर depid कॉलम पूर्णांक हैं। –
@MatthewLundberg दिलचस्प, इसके लिए धन्यवाद। इसे क्यों हटाया गया, उपयोगी लगता है! यह समझाएगा कि परीक्षणों ने इसे क्यों नहीं पकड़ा है - शायद मैंने केवल एनएएस को पूर्णांक के साथ परीक्षण करने का विचार किया होगा कि एनए डबल के रूप में कोई फर्क नहीं पड़ता। –
मैं इसका उत्तर नहीं दे सकता, लेकिन यह नहीं पता था कि आप संकेत के बिना पूर्णांक के साथ विलय का प्रयास करेंगे या नहीं। उत्तरदाता ने दावा किया कि चरित्र भी काम करता है, लेकिन मैंने सत्यापित नहीं किया। –