دروس الوحدة (1/2)
تصفية واختيار البيانات
Tidyverse عبارة عن مجموعة من حزم R المصممة لعلم البيانات والتي تشترك في فلسفة وقواعد نحوية وهياكل بيانات مشتركة. الحزمة الأساسية لمعالجة البيانات في هذه المجموعة تسمى dplyr.
يقدم dplyr مجموعة من الوظائف ("الأفعال") التي تجعل معالجة إطار البيانات أمرًا بديهيًا للغاية.
مشغل الأنابيب (%>% أو |>)
تركز فلسفة Tidyverse على تسلسل العمليات معًا. يأخذ عامل توجيه الإخراج %>% (أو توجيه الإخراج الأصلي |> المقدم في R 4.1+) نتيجة تعبير واحد ويمررها كوسيطة أولى إلى الوظيفة التالية. يؤدي هذا إلى تجنب استدعاءات الوظائف المتداخلة ويمنع ازدحام مساحة العمل الخاصة بك بالمتغيرات المؤقتة.
# Without pipe:
filter(select(df, name, age), age > 20)
# With pipe:
df %>%
select(name, age) %>%
filter(age > 20)أفعال dplyr للتصفية والاختيار
الأفعال الأساسية الثلاثة لاستخراج البيانات من إطار البيانات هي:
1. محمي_INLINE_4
تحديد أعمدة محددة من إطار البيانات. يمكنك إدراج أسماء الأعمدة للاحتفاظ بها أو استخدام البادئة - لاستبعاد الأعمدة.
# Select the 'name' and 'salary' columns
select(df, name, salary)
# Remove the 'address' column
select(df, -address)2. محمي_INLINE_6
يقوم بتصفية الصفوف بناءً على شرط منطقي واحد أو أكثر.
# 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().
# Sort by age (ascending)
arrange(df, age)
# Sort by salary (descending)
arrange(df, desc(salary))جربه بنفسك
التمرين 1: تحديد الأعمدة
بالنظر إلى إطار البيانات df، حدد أعمدة الاسم والعمر باستخدام Select() واحفظ النتيجة في df_selected.
إظهار التلميح
الولايات المتحدة الأمريكية: df_selected <- حدد (df، الاسم، العمر)
الحل متاح بعد 3 من المحاولات
قم بتصفية صفوف إطار البيانات df حيث يكون عمود العمر أكبر من 18 بشكل صارم، مع حفظ النتيجة في df_adults.
إظهار التلميح
استخدم وظيفة التصفية (df, age > 18) وقم بتعيين النتيجة إلى df_adults.
الحل متاح بعد 3 من المحاولات
استخدم مشغل الأنابيب %>% لتسلسل العمليات: قم أولاً بتصفية df مع الاحتفاظ بالسجلات فقط حيث العمر > 18، ثم حدد عمود الاسم. احفظ النتيجة في الدقة.
إظهار التلميح
Scrivi: مرشح الدقة <- df %>% (العمر > 18) %>% حدد (الاسم)
الحل متاح بعد 3 من المحاولات
قم بفرز صفوف إطار البيانات df بناءً على عمود الراتب بترتيب تنازلي باستخدام الترتيب () والوصف (). احفظ النتيجة في df_sorted.
إظهار التلميح
قم بترتيب(تنازل(الراتب)) من داخل خط أنابيب أو من خلال التجارة مباشرة.
الحل متاح بعد 3 من المحاولات
اكتب مسارًا كاملاً على df: قم بتصفية السجلات حيث يساوي القسم "IT"، وحدد اسم الأعمدة والراتب، وقم بفرز النتيجة حسب الراتب (تصاعديًا). حفظ النتيجة النهائية في الدقة.
إظهار التلميح
استخدم الأنبوب %>% لتصفية السلسلة (القسم == 'IT')، وحدد (الاسم، والراتب)، وترتيب (الراتب).
الحل متاح بعد 3 من المحاولات