मेरे पास आर में डेटाटेबल है जिसमें कई आईडी और एक मान है। आईडी के प्रत्येक संयोजन के लिए, कई पंक्तियां हैं। यदि इनमें से किसी पंक्ति में कॉलम 'मान' में NA शामिल है, तो मैं आईडी के इस संयोजन के साथ सभी पंक्तियों को हटाना चाहता हूं। उदाहरण के लिए, नीचे दी गई तालिका में, मैं उन सभी पंक्तियों को हटाना चाहूंगा जिनके लिए id1 == 2
और id2 == 1
।कई स्तंभों के मानों के आधार पर आर में डेटा.table से पंक्तियां निकालें
यदि मेरे पास केवल एक आईडी थी तो मैं dat[!(id1 %in% dat[is.na(value),id1])]
करूँगा। उदाहरण में, यह उन सभी पंक्तियों को हटा देगा जहां i1 == 2. हालांकि, मैंने कई कॉलम शामिल करने का प्रबंधन नहीं किया था।
dat <- data.table(id1 = c(1,1,2,2,2,2),
id2 = c(1,2,1,2,3,1),
value = c(5,3,NA,6,7,3))
कोशिश 'Dat [! (ID1 == 2 और आईडी 2 == 1)]' या 'setkey (डीएटी, ID1 आईडी 2) [! जम्मू (2, 1)] ' – akrun
मुझे पता है कि यह उपरोक्त सरल उदाहरण में काम करेगा। हालांकि, सवाल अधिक सामान्य होने के लिए है क्योंकि एनएएस के साथ बड़ी संख्या में पंक्तियां हो सकती हैं। – lilaf
मुझे लगता है कि वह 'डेटा [, अगर (सभी (! Is.na (मान)) की तलाश में है।) एसडी,। (आईडी 1, आईडी 2)]' –