كيفية تصفية إطار البيانات دون فقدان خطوط na باستخدام dplyr


يمكنك استخدام بناء الجملة الأساسي التالي لتصفية إطار البيانات دون فقدان الصفوف التي تحتوي على قيم NA باستخدام الوظائف الموجودة في حزمتي dplyr و Tidyr في R:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

لاحظ أن هذه الصيغة تستخدم وظيفة استبدال_na() من حزمة Tidyr لتحويل قيم NA إلى TRUE بحيث لا تتم إزالتها من إطار البيانات أثناء التصفية.

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: تصفية إطار البيانات دون فقدان صفوف NA باستخدام dplyr

لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:

 #create data frame
df <- data. frame (team=c('A', NA, 'A', 'B', NA, 'C', 'C', 'C'),
                 points=c(18, 13, 19, 14, 24, 21, 20, 28),
                 assists=c(5, 7, 17, 9, 12, 9, 5, 12))

#view data frame
df

  team points assists
1 to 18 5
2 <NA> 13 7
3 A 19 17
4 B 14 9
5 <NA> 24 12
6 C 21 9
7 C 20 5
8 C 28 12

لنفترض الآن أننا نستخدم الدالة filter() من الحزمة dplyr لتصفية إطار البيانات ليحتوي فقط على تلك الصفوف التي لا تساوي قيمتها في عمود الفريق A:

 library (dplyr)

#filter for rows where team is not equal to 'A'
df <- df %>% filter(team != ' A ')

#view updated data frame
df

  team points assists
1 B 14 9
2 C 21 9
3 C 20 5
4 C 28 12

لاحظ أنه تمت تصفية كل صف حيث القيمة في عمود الفريق تساوي A، بما في ذلك الصفوف التي تساوي فيها القيمة في عمود الفريق NA.

إذا أردنا تصفية الصفوف التي يساوي فيها الفريق A والاحتفاظ بالصفوف ذات قيم NA، فيمكننا استخدام بناء الجملة التالي:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

#view updated data frame
df

  team points assists
1 <NA> 13 7
2 B 14 9
3 <NA> 24 12
4 C 21 9
5 C 20 5
6 C 28 12

لاحظ أنه تمت تصفية كل صف حيث القيمة في عمود الفريق تساوي A، ولكننا احتفظنا بالصفوف التي تساوي فيها القيمة في عمود الفريق NA.

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة Tidyr استبدال_na() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى في dplyr:

كيفية التصفية حسب رقم الصف باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr
كيفية استخدام مرشح “غير مضمن” في dplyr

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *