ए: एग्रीगेट() का उपयोग कैसे करें और एनए के साथ पंक्तियों को न हटाएं
आप डेटा फ्रेम में चर के लिए सारांश आंकड़ों की गणना करने के लिए आर में एग्रीगेट () फ़ंक्शन का उपयोग कर सकते हैं।
डिफ़ॉल्ट रूप से, यदि एग्रीगेट() फ़ंक्शन एक या अधिक NA मानों के साथ डेटा फ़्रेम में एक पंक्ति का सामना करता है, तो यह गणना करते समय पंक्ति को हटा देगा।
गणना करते समय इससे अप्रत्याशित परिणाम हो सकते हैं।
इस व्यवहार से बचने के लिए, आप Aggregate() फ़ंक्शन में na.action=NULL तर्क का उपयोग कर सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस तर्क का उपयोग कैसे करें।
उदाहरण: R में aggegate() का उपयोग करें और NA वाली पंक्तियाँ न हटाएँ
मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जो विभिन्न टीमों के बास्केटबॉल खिलाड़ियों के अंक और सहायता दिखाता है:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'), points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18), assists=c(NA, 4, 4, 5, 3, 6, 8, 4, 10, NA)) #view data frame df team points assists 1 to 5 NA 2 to 9 4 3 to 12 4 4 to 14 5 5 A 14 3 6 B 13 6 7 B 10 8 8 B 6 4 9 C 15 10 10 C 18 NA
अब मान लीजिए कि हम टीम द्वारा समूहीकृत अंकों और सहायताओं के योग की गणना करने के लिए एग्रीगेट() फ़ंक्शन का उपयोग करने का प्रयास करते हैं:
#attempt to calculate sum of points and assists, grouped by team aggregate(. ~ team, data=df, FUN=sum, na. rm = TRUE ) team points assists 1 A 49 16 2 B 29 18 3 C 15 10
ऐसा प्रतीत होता है कि परिणाम हमें प्रति टीम अंकों और सहायताओं का योग दिखाता है, लेकिन इन गणनाओं को चलाने के दौरान NA मान वाली पंक्तियाँ वास्तव में हटा दी गई थीं।
हम मूल डेटा फ़्रेम को देखकर और यह देखकर इसकी पुष्टि कर सकते हैं कि टीम सी के अंक कॉलम में दो मान हैं:
- 15
- 18
तो, टीम सी के पास कुल 33 अंक होने चाहिए, लेकिन परिणाम केवल 15 दिखाता है।
ऐसा इसलिए है क्योंकि 18 के अंक मान वाली पंक्ति में सहायता कॉलम में NA का मान होता है, जिसका अर्थ है कि टीम के अंकों के योग बनाम की गणना करते समय इस पंक्ति का वास्तव में उपयोग नहीं किया गया था।
यह सुनिश्चित करने के लिए कि गणना करते समय NA मान वाली पंक्तियाँ नहीं हटाई जाती हैं, हमें निम्नानुसार na.action=NULL तर्क का उपयोग करने की आवश्यकता है:
#calculate sum of points and assists, grouped by team (don't drop NA rows) aggregate(. ~ team, data=df, FUN=sum, na. rm = TRUE , na. action =NULL) team points assists 1 A 54 16 2 B 29 18 3 C 33 10
ध्यान दें कि एग्रीगेट() फ़ंक्शन इस बार टीम सी के लिए 33 के बराबर बिंदु मानों का योग सही ढंग से लौटाता है।
ध्यान दें : na.rm=TRUE तर्क निर्दिष्ट करता है कि किसी विशिष्ट कॉलम में गणना करते समय NA मानों को अनदेखा किया जाना चाहिए।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:
आर में सारांश() फ़ंक्शन का उपयोग कैसे करें
आर में प्रति समूह माध्य की गणना कैसे करें
आर में वर्णनात्मक आँकड़ों की गणना कैसे करें