كيفية تجميع البيانات وتصفيتها باستخدام dplyr
يمكنك استخدام بناء الجملة الأساسي التالي لتجميع البيانات وتصفيتها باستخدام حزمة dplyr في R:
df %>% group_by(team) %>% filter(any(points = = 10 ))
يقوم بناء الجملة هذا بتجميع إطار بيانات لكل عمود يسمى الفريق ويقوم فقط بتصفية المجموعات التي تكون فيها قيمة واحدة على الأقل في عمود النقاط تساوي 10.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: تجميع البيانات وتصفيتها باستخدام dplyr
لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))
#view data frame
df
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7
يمكننا استخدام الكود التالي لتجميع إطار البيانات حسب القيمة الموجودة في عمود الفريق ، ثم تصفية جميع المجموعات التي ليس لها قيمة واحدة على الأقل في عمود النقاط تساوي 10:
library (dplyr)
#group by team and filter out teams where no points value is equal to 10
df %>%
group_by(team) %>%
filter(any(points == 10 ))
# A tibble: 6 x 2
# Groups: team [2]
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
لاحظ أنه تتم تصفية جميع الصفوف التي يساوي فيها الفريق “C” لأنه لا توجد قيمة في عمود النقاط للفريق “C” تساوي 10.
لاحظ أن هذا مجرد مثال على مرشح يمكننا تطبيقه.
على سبيل المثال، يمكننا تطبيق مرشح آخر نقوم فيه بتصفية الفرق التي تحتوي على قيمة واحدة على الأقل في عمود النقاط أكبر من 13:
library (dplyr)
#group by team and filter out teams where no points value is greater than 13
df %>%
group_by(team) %>%
filter(any(points > 13 ))
# A tibble: 3 x 2
# Groups: team [1]
team points
1 to 10
2 to 15
3 to 8
لاحظ أنه يتم الاحتفاظ فقط بالأسطر التي يساوي فيها الفريق “A” نظرًا لأنه الفريق الوحيد الذي لديه قيمة نقطة واحدة على الأقل أكبر من 13.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة التصفية في dplyr هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في dplyr:
كيفية تحديد الصف الأول حسب المجموعة باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr
كيفية تصفية الصفوف التي تحتوي على سلسلة معينة باستخدام dplyr