دروس الوحدة (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. محمي_INLINE_4
يقوم بتجميع إطار البيانات حسب قيم عمود واحد أو أكثر. في حد ذاته، لا يغير المظهر المرئي للبيانات، ولكنه يشير إلى 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، قم بإنشاء عمود جديد يسمى Total_price عن طريق ضرب عمود الكمية بعمود السعر باستخدام mutate(). احفظ النتيجة في df_new.
إظهار التلميح
استخدم mutate(total_price =quantity *price) داخل خط الأنابيب على df.
الحل متاح بعد 3 من المحاولات
التمرين 2: التجميع والتلخيص باستخدام المتوسط الحسابي
حساب متوسط عمود الراتب، مع تجميع السجلات حسب عمود القسم. احفظ العمود المجمع بالاسم mean_salary وقم بتعيين النتيجة النهائية إلى df_grouped.
إظهار التلميح
الولايات المتحدة الأمريكية df %>% group_by(department) %>% ملخص(mean_salary = mean(salary))
الحل متاح بعد 3 من المحاولات
التمرين 3: عد العناصر لكل مجموعة
حساب عدد الصفوف لكل مدينة (عمود المدينة). قم بتعيين العدد لمتغير العدد داخل summarise() باستخدام الدالة n()، واحفظ النتيجة النهائية في df_counts.
إظهار التلميح
قم بدمج group_by(city) مع تلخيص(count = n()) في خط أنابيب واحد.
الحل متاح بعد 3 من المحاولات
التمرين 4: ملخصات متعددة
احسب الحد الأدنى للقيمة (min_price) والحد الأقصى للقيمة (max_price) لتجميع عمود السعر حسب عمود الفئة. احفظ النتيجة في df_summary.
إظهار التلميح
داخل summarise()، افصل بين مقاييس min_price = min(price) وmax_price = max(price) بفاصلة.
الحل متاح بعد 3 من المحاولات
التمرين 5: تجميع المرشحات ودمجها
اكتب مسارًا يجمع df حسب عمود القسم، ويحسب متوسط الراتب الذي يحفظه في العمود الجديد avg_salary باستخدام mutate() (ملاحظة: استخدم التغيير، وليس التلخيص، للاحتفاظ بجميع الصفوف)، وأخيرًا قم بالتصفية للاحتفاظ فقط بالسجلات التي يكون الراتب فيها أكبر من avg_salary بشكل صارم. حفظ في الدقة.
إظهار التلميح
الولايات المتحدة الأمريكية df %>% group_by(department) %>% mutate(avg_salary = mean(salary)) %>% filter(salary > avg_salary)
الحل متاح بعد 3 من المحاولات