ماڈیول اسباق (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: ایک حسابی کالم بنائیں
ڈیٹا فریم df کو دیکھتے ہوئے، mutate() کا استعمال کرتے ہوئے مقدار کے کالم کو قیمت کے کالم سے ضرب دے کر total_price نامی ایک نیا کالم بنائیں۔ نتیجہ کو df_new میں محفوظ کریں۔
اشارہ دکھائیں۔
df پر پائپ لائن کے اندر mutate(total_price = quantity * price) کا استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 2: گروپ بنائیں اور وسط کے ساتھ خلاصہ کریں۔
محکمہ کالم کے حساب سے ریکارڈ کو گروپ کرتے ہوئے تنخواہ کے کالم کے وسط کا حساب لگائیں۔ مجموعی کالم کو mean_salary کے نام سے محفوظ کریں اور حتمی نتیجہ df_grouped کو تفویض کریں۔
اشارہ دکھائیں۔
USA df %>% group_by(department) %>% summarise(mean_salary = اوسط(تنخواہ))
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 3: فی گروپ عناصر کی گنتی کریں۔
ہر شہر (شہر کے کالم) کے لیے قطاروں کی تعداد شمار کریں۔ n() فنکشن کا استعمال کرتے ہوئے summarise() کے اندر گنتی کے متغیر کو شمار تفویض کریں، اور حتمی نتیجہ df_counts میں محفوظ کریں۔
اشارہ دکھائیں۔
una پائپ لائن میں گروپ_بائی(شہر) کا خلاصہ(count = n()) کا مجموعہ۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 4: متعدد خلاصے
زمرہ کالم کے لحاظ سے قیمت کے کالم کی گروپ بندی کی کم از کم قیمت (min_price) اور زیادہ سے زیادہ قدر (max_price) کا حساب لگائیں۔ نتیجہ کو df_summary میں محفوظ کریں۔
اشارہ دکھائیں۔
summarise() کے اندر، min_price = min(price) اور max_price = max(price) میٹرکس کو کوما سے الگ کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 5: گروپ بندی اور مشترکہ فلٹرز
ایک پائپ لائن لکھیں جو ڈپارٹمنٹ کالم کے ذریعہ ڈی ایف کو گروپ کرتی ہے، نئے کالم avg_salary میں mutate() کا استعمال کرتے ہوئے تنخواہ کے اوسط کا حساب لگاتی ہے (نوٹ: mutate کا استعمال کریں، خلاصہ نہیں، تمام قطاروں کو رکھنے کے لیے) اور آخر میں صرف تنخواہ کے ساتھ ریکارڈ رکھنے کے لیے فلٹر کریں avg_sal سے سختی سے زیادہ۔ ریس میں محفوظ کریں۔
اشارہ دکھائیں۔
USA df %>% group_by(department) %>% mutate(avg_salary = اوسط(تنخواہ)) %>% فلٹر(تنخواہ> اوسط_salary)
3 کوششوں کے بعد حل دستیاب ہے۔