मॉड्यूल पाठ (2/2)
उत्परिवर्तन और एकत्रीकरण
चयन और फ़िल्टरिंग से परे, dplyr नए परिकलित कॉलम बनाने और डेटा को समूहों में एकत्रित करके सारांशित करने की शक्तिशाली क्षमताएं प्रदान करता है।
नए कॉलम बनाना: mutate()
mutate() क्रिया आपको सभी मूल स्तंभों को बरकरार रखते हुए नए स्तंभों की गणना करने या मौजूदा स्तंभों को संशोधित करने की अनुमति देती है।
# Adds a 'double_salary' column computed as 'salary' multiplied by 2
df %>%
mutate(double_salary = salary * 2)
# You can create multiple columns at once
df %>%
mutate(
total_cost = quantity * price,
tax = total_cost * 0.22
)समूहीकरण और एकत्रीकरण: group_by() और summarise()
अक्सर, डेटा विश्लेषण के लिए पंक्तियों के विशिष्ट समूहों के लिए सारांश आंकड़ों (जैसे माध्य, योग, गिनती) की गणना की आवश्यकता होती है (उदाहरण के लिए, प्रत्येक विभाग के लिए औसत वेतन की गणना)।
1. group_by()
डेटा फ़्रेम को एक या अधिक कॉलम के मानों के आधार पर समूहित करता है। अपने आप में, यह डेटा की दृश्य उपस्थिति को नहीं बदलता है, लेकिन यह dplyr को संकेत देता है कि बाद के संचालन को "समूह दर समूह" निष्पादित किया जाना चाहिए।
2. summarise() (या summarize())
mean(), sum(), min(), max(), या n() (जो पंक्तियों की गिनती करता है) जैसे सांख्यिकीय कार्यों को लागू करके कई पंक्तियों को एक सारांश पंक्ति में संक्षिप्त करता है।
# Calculates the average salary per department
df %>%
group_by(department) %>%
summarise(mean_salary = mean(salary))यदि आप गिनना चाहते हैं कि प्रत्येक समूह में कितने रिकॉर्ड हैं:
# Counts how many employees are in each city
df %>%
group_by(city) %>%
summarise(count = n())खुद कोशिश करना
अभ्यास 1: एक परिकलित कॉलम बनाएं
डेटा फ़्रेम डीएफ को देखते हुए, mutate() का उपयोग करके मात्रा कॉलम को मूल्य कॉलम से गुणा करके total_price नामक एक नया कॉलम बनाएं। परिणाम को df_new में सहेजें।
संकेत दिखाएँ
डीएफ पर पाइपलाइन के अंदर mutate(total_price = मात्रा * कीमत) का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 2: समूह बनाएं और माध्य के साथ सारांशित करें
विभाग कॉलम के अनुसार रिकॉर्ड को समूहीकृत करते हुए, वेतन कॉलम के माध्य की गणना करें। एकत्रित कॉलम को mat_salary नाम से सहेजें और अंतिम परिणाम df_grouped को निर्दिष्ट करें।
संकेत दिखाएँ
यूएसए डीएफ %>% समूह_द्वारा(विभाग) %>% सारांश(माध्य_वेतन = माध्य(वेतन))
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 3: प्रति समूह तत्वों की गणना करें
प्रत्येक शहर (शहर स्तंभ) के लिए पंक्तियों की संख्या की गणना करें। n() फ़ंक्शन का उपयोग करके summarise() के अंदर गिनती चर को गिनती निर्दिष्ट करें, और अंतिम परिणाम को df_counts में सहेजें।
संकेत दिखाएँ
एक पाइपलाइन में समूह_बाय(शहर) को सारांश(गिनती = एन()) के साथ मिलाएं।
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 4: एकाधिक सारांश
श्रेणी कॉलम द्वारा मूल्य कॉलम समूहन के न्यूनतम मूल्य (न्यूनतम मूल्य) और अधिकतम मूल्य (अधिकतम मूल्य) की गणना करें। परिणाम को df_summary में सहेजें।
संकेत दिखाएँ
सारांश () के अंदर, min_price = min(price) और max_price = max(price) मेट्रिक्स को अल्पविराम से अलग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 5: समूहीकरण और संयुक्त फ़िल्टर
एक पाइपलाइन लिखें जो df को विभाग कॉलम के आधार पर समूहित करता है, mutate() का उपयोग करके नए कॉलम avg_salary में इसे बचाने वाले वेतन के माध्य की गणना करता है (नोट: सभी पंक्तियों को रखने के लिए mutate का उपयोग करें, सारांश का नहीं), और अंत में केवल avg_salary से अधिक वेतन वाले रिकॉर्ड रखने के लिए फ़िल्टर करें। Res में सहेजें.
संकेत दिखाएँ
यूएसए डीएफ %>% समूह_द्वारा(विभाग) %>% उत्परिवर्तन(avg_salary = माध्य(वेतन)) %>% फ़िल्टर(वेतन > औसत_वेतन)
3 प्रयासों के बाद समाधान उपलब्ध है