البرمجة

تصفية إطار البيانات في R باستخدام tidyverse

في هذا السياق، يتعامل المستخدم مع إطار بيانات يُظهر شهورًا ومعرّفات (ID) ، ويرغب في تصفية البيانات بحيث يتم الاحتفاظ فقط بالمعرّفات التي تظهر في الشهر الأول. يُظهر الشيفرة أدناه كيف يمكن تحقيق هذا:

R
# تحميل مكتبة tidyverse library(tidyverse) # تحديد الإطار البياني df <- data.frame(month_key = c(rep(201504, 2), rep(201505, 3)), id = c(1, 2, 1, 2, 3)) # تصفية البيانات باستخدام tidyverse filtered_df <- df %>% group_by(month_key) %>% # تجميع البيانات حسب month_key filter(row_number() == 1) %>% # اختيار الصفوف الأولى لكل month_key ungroup() %>% # فك الإجماع filter(id %in% filtered_df$id) # تصفية البيانات الأصلية بحسب المعرّفات الناتجة # طباعة الإطار البياني النهائي print(filtered_df)

تم استخدام مكتبة tidyverse للقيام بذلك، حيث تساعد على تنظيم الشيفرة وجعلها أكثر وضوحًا. يتم تجميع البيانات أولاً حسب month_key، ثم يتم اختيار الصفوف الأولى لكل month_key. بعد ذلك، يتم فك الإجماع للسماح بتصفية البيانات الأصلية باستخدام المعرّفات الناتجة.

المزيد من المعلومات

في هذا السياق، يتعامل المستخدم مع لغة البرمجة R ومكتبة tidyverse، ويقوم بتصفية إطار البيانات (data frame) باستخدام مجموعة من الخطوات. للبداية، يتم تحميل مكتبة tidyverse باستخدام الأمر library(tidyverse)، والتي تشمل مجموعة من الحزم المفيدة لتحليل البيانات.

ثم يتم تعريف إطار البيانات df الذي يحتوي على عمودين، month_key و id، ويحتوي على بيانات تمثل شهورًا ومعرفات. بعد ذلك، يتم استخدام مجموعة من وظائف tidyverse لتحقيق عملية التصفية المطلوبة.

يتم تجميع البيانات باستخدام group_by(month_key)، حيث يتم تجميع الصفوف حسب الشهر، ومن ثم يتم استخدام filter(row_number() == 1) لاختيار الصفوف الأولى لكل شهر. يلي ذلك استخدام ungroup() لفك التجميع والعودة إلى الإطار البياني الأصلي.

أخيرًا، يتم استخدام filter(id %in% filtered_df$id) لتصفية البيانات الأصلية بحسب المعرّفات التي ظهرت في الشهر الأول. النتيجة النهائية هي إطار بيانات يحتوي فقط على المعرفات التي ظهرت في الشهر الأول، ويتم طباعته باستخدام print(filtered_df).

هذا النهج يتيح للمستخدم تحقيق هدفه بشكل فعّال دون الحاجة إلى استخدام عمليات الانضمام (inner join) أو تحديد المعرّفات يدويًا، مما يجعل الشيفرة أكثر فعالية وسهولة قراءة.

زر الذهاب إلى الأعلى