الانتقال إلى المحتوى الرئيسي
الوحدة 4 · الدرس 2 من 28/10 في الدورة~15 min
دروس الوحدة (2/2)

الطفرات والتجمعات

بالإضافة إلى التحديد والتصفية، يوفر dplyr إمكانات قوية لإنشاء أعمدة محسوبة جديدة وتلخيص البيانات من خلال تجميعها في مجموعات.


إنشاء أعمدة جديدة: mutate()

يتيح لك الفعل mutate() حساب الأعمدة الجديدة أو تعديل الأعمدة الموجودة، مع الحفاظ على جميع الأعمدة الأصلية سليمة.

R
# 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() (التي تحسب الصفوف).

R
# Calculates the average salary per department
df %>%
  group_by(department) %>%
  summarise(mean_salary = mean(salary))

إذا كنت تريد حساب عدد السجلات التي تنتمي إلى كل مجموعة:

R
# Counts how many employees are in each city
df %>%
  group_by(city) %>%
  summarise(count = n())

جربه بنفسك

التمرين 1: قم بإنشاء عمود محسوب

تمرين#r.m4.l2.e1
المحاولات: 0جارٍ التحميل…

بالنظر إلى إطار البيانات df، قم بإنشاء عمود جديد يسمى Total_price عن طريق ضرب عمود الكمية بعمود السعر باستخدام mutate(). احفظ النتيجة في df_new.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم mutate(total_price =quantity *price) داخل خط الأنابيب على df.

الحل متاح بعد 3 من المحاولات

التمرين 2: التجميع والتلخيص باستخدام المتوسط ​​الحسابي

تمرين#r.m4.l2.e2
المحاولات: 0جارٍ التحميل…

حساب متوسط ​​عمود الراتب، مع تجميع السجلات حسب عمود القسم. احفظ العمود المجمع بالاسم mean_salary وقم بتعيين النتيجة النهائية إلى df_grouped.

جارٍ تحميل المحرر…
إظهار التلميح

الولايات المتحدة الأمريكية df %>% group_by(department) %>% ملخص(mean_salary = mean(salary))

الحل متاح بعد 3 من المحاولات

التمرين 3: عد العناصر لكل مجموعة

تمرين#r.m4.l2.e3
المحاولات: 0جارٍ التحميل…

حساب عدد الصفوف لكل مدينة (عمود المدينة). قم بتعيين العدد لمتغير العدد داخل summarise() باستخدام الدالة n()، واحفظ النتيجة النهائية في df_counts.

جارٍ تحميل المحرر…
إظهار التلميح

قم بدمج group_by(city) مع تلخيص(count = n()) في خط أنابيب واحد.

الحل متاح بعد 3 من المحاولات

التمرين 4: ملخصات متعددة

تمرين#r.m4.l2.e4
المحاولات: 0جارٍ التحميل…

احسب الحد الأدنى للقيمة (min_price) والحد الأقصى للقيمة (max_price) لتجميع عمود السعر حسب عمود الفئة. احفظ النتيجة في df_summary.

جارٍ تحميل المحرر…
إظهار التلميح

داخل summarise()، افصل بين مقاييس min_price = min(price) وmax_price = max(price) بفاصلة.

الحل متاح بعد 3 من المحاولات

التمرين 5: تجميع المرشحات ودمجها

تمرين#r.m4.l2.e5
المحاولات: 0جارٍ التحميل…

اكتب مسارًا يجمع df حسب عمود القسم، ويحسب متوسط ​​الراتب الذي يحفظه في العمود الجديد avg_salary باستخدام mutate() (ملاحظة: استخدم التغيير، وليس التلخيص، للاحتفاظ بجميع الصفوف)، وأخيرًا قم بالتصفية للاحتفاظ فقط بالسجلات التي يكون الراتب فيها أكبر من avg_salary بشكل صارم. حفظ في الدقة.

جارٍ تحميل المحرر…
إظهار التلميح

الولايات المتحدة الأمريكية df %>% group_by(department) %>% mutate(avg_salary = mean(salary)) %>% filter(salary > avg_salary)

الحل متاح بعد 3 من المحاولات