كيفية إجراء تنظيف البيانات في r (مع مثال)
يشير تنظيف البيانات إلى عملية تحويل البيانات الأولية إلى بيانات مناسبة للتحليل أو بناء النماذج.
في معظم الحالات، يتضمن “تنظيف” مجموعة البيانات التعامل مع القيم المفقودة والبيانات المكررة.
فيما يلي الطرق الأكثر شيوعًا “لتنظيف” مجموعة البيانات في R:
الطريقة الأولى: إزالة الصفوف ذات القيم المفقودة
library (dplyr) #remove rows with any missing values df %>% na. omit ()
الطريقة الثانية: استبدال القيم المفقودة بقيمة أخرى
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
الطريقة الثالثة: إزالة الصفوف المكررة
library (dplyr) df %>% distinct(. keep_all = TRUE )
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebound assists 1 to 4 9 2 2 to 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9:13:12 NA 10 I 8 11 14
المثال 1: حذف الصفوف ذات القيم المفقودة
يمكننا استخدام بناء الجملة التالي لإزالة الصفوف ذات القيم المفقودة في أي عمود:
library (dplyr) #remove rows with missing values new_df <- df %>% na. omit () #view new data frame new_df team points rebound assists 1 to 4 9 2 2 to 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
لاحظ أن إطار البيانات الجديد لا يحتوي على أية صفوف ذات قيم مفقودة.
مثال 2: استبدال القيم المفقودة بقيمة أخرى
يمكننا استخدام الصيغة التالية لاستبدال القيم المفقودة بالقيمة المتوسطة لكل عمود:
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #view new data frame new_df team points rebound assists 1 to 4 9 2.0 2 to 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9:13 12 6.5 10 I 8 11 14.0
لاحظ أنه تم استبدال القيم المفقودة في كل عمود رقمي بالقيمة المتوسطة للعمود.
لاحظ أنه يمكنك أيضًا استبدال الوسيط في الصيغة بالمتوسط لاستبدال القيم المفقودة بالقيمة المتوسطة لكل عمود.
ملاحظة : كان علينا أيضًا تحميل حزمة Tidyr في هذا المثال لأن الدالة drop_na() تأتي من تلك الحزمة.
المثال 3: إزالة الصفوف المكررة
يمكننا استخدام الصيغة التالية لاستبدال القيم المفقودة بالقيمة المتوسطة لكل عمود:
library (dplyr) #remove duplicate rows new_df <- df %>% distinct(. keep_all = TRUE ) #view new data frame new_df team points rebound assists 1 to 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8:13:12 NA 9 I 8 11 14
لاحظ أنه تمت إزالة الصف الثاني من إطار البيانات لأن كل من القيم الموجودة في الصف الثاني كانت مكررة للقيم الموجودة في الصف الأول.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة dplyr متميزة () هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تجميع وتلخيص البيانات في R
كيفية إنشاء جداول ملخصة في R
كيفية حذف الصفوف ذات القيم المفقودة في R