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

تصفية واختيار البيانات

Tidyverse عبارة عن مجموعة من حزم R المصممة لعلم البيانات والتي تشترك في فلسفة وقواعد نحوية وهياكل بيانات مشتركة. الحزمة الأساسية لمعالجة البيانات في هذه المجموعة تسمى dplyr.

يقدم dplyr مجموعة من الوظائف ("الأفعال") التي تجعل معالجة إطار البيانات أمرًا بديهيًا للغاية.


مشغل الأنابيب (%>% أو |>)

تركز فلسفة Tidyverse على تسلسل العمليات معًا. يأخذ عامل توجيه الإخراج %>% (أو توجيه الإخراج الأصلي |> المقدم في R 4.1+) نتيجة تعبير واحد ويمررها كوسيطة أولى إلى الوظيفة التالية. يؤدي هذا إلى تجنب استدعاءات الوظائف المتداخلة ويمنع ازدحام مساحة العمل الخاصة بك بالمتغيرات المؤقتة.

R
# Without pipe:
filter(select(df, name, age), age > 20)

# With pipe:
df %>%
  select(name, age) %>%
  filter(age > 20)

أفعال dplyr للتصفية والاختيار

الأفعال الأساسية الثلاثة لاستخراج البيانات من إطار البيانات هي:

1. محمي_INLINE_4

تحديد أعمدة محددة من إطار البيانات. يمكنك إدراج أسماء الأعمدة للاحتفاظ بها أو استخدام البادئة - لاستبعاد الأعمدة.

R
# Select the 'name' and 'salary' columns
select(df, name, salary)

# Remove the 'address' column
select(df, -address)

2. محمي_INLINE_6

يقوم بتصفية الصفوف بناءً على شرط منطقي واحد أو أكثر.

R
# Filter rows where age is greater than 30
filter(df, age > 30)

# Filter using multiple conditions (logical AND)
filter(df, age > 30, department == "HR")

3. محمي_INLINE_7

فرز الصفوف بناءً على قيم عمود واحد أو أكثر. ترتيب الفرز تصاعدي بشكل افتراضي. للفرز بترتيب تنازلي، قم بلف اسم العمود في desc().

R
# Sort by age (ascending)
arrange(df, age)

# Sort by salary (descending)
arrange(df, desc(salary))

جربه بنفسك

التمرين 1: تحديد الأعمدة

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

بالنظر إلى إطار البيانات df، حدد أعمدة الاسم والعمر باستخدام Select() واحفظ النتيجة في df_selected.

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

الولايات المتحدة الأمريكية: df_selected <- حدد (df، الاسم، العمر)

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

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

قم بتصفية صفوف إطار البيانات df حيث يكون عمود العمر أكبر من 18 بشكل صارم، مع حفظ النتيجة في df_adults.

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

استخدم وظيفة التصفية (df, age > 18) وقم بتعيين النتيجة إلى df_adults.

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

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

استخدم مشغل الأنابيب %>% لتسلسل العمليات: قم أولاً بتصفية df مع الاحتفاظ بالسجلات فقط حيث العمر > 18، ثم حدد عمود الاسم. احفظ النتيجة في الدقة.

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

Scrivi: مرشح الدقة <- df %>% (العمر > 18) %>% حدد (الاسم)

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

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

قم بفرز صفوف إطار البيانات df بناءً على عمود الراتب بترتيب تنازلي باستخدام الترتيب () والوصف (). احفظ النتيجة في df_sorted.

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

قم بترتيب(تنازل(الراتب)) من داخل خط أنابيب أو من خلال التجارة مباشرة.

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

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

اكتب مسارًا كاملاً على df: قم بتصفية السجلات حيث يساوي القسم "IT"، وحدد اسم الأعمدة والراتب، وقم بفرز النتيجة حسب الراتب (تصاعديًا). حفظ النتيجة النهائية في الدقة.

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

استخدم الأنبوب %>% لتصفية السلسلة (القسم == 'IT')، وحدد (الاسم، والراتب)، وترتيب (الراتب).

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