كيفية استبدال na بالوسيط في r


يمكنك استخدام الطرق التالية لاستبدال قيم NA بالوسيط باستخدام وظائف من حزمتي dplyr و Tidyr في R:

الطريقة الأولى: استبدال قيم NA بالوسيط في عمود

 df %>% mutate(across(col1, ~replace_na(., median(., na. rm = TRUE ))))

الطريقة الثانية: استبدال قيم NA بالمتوسط في أعمدة متعددة

 df %>% mutate(across(c(col1, col2), ~replace_na(., median(., na. rm = TRUE ))))

الطريقة الثالثة: استبدال قيم NA بالمتوسط في جميع الأعمدة الرقمية

 df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'),
                 points=c(17, 13, NA, 9, 25),
                 rebounds=c(3, 4, NA, NA, 8),
                 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

مثال 1: استبدال قيم NA بالوسيط في عمود

يوضح الكود التالي كيفية استبدال قيم NA في عمود النقطة بالقيمة المتوسطة لعمود النقطة :

 library (dplyr)
library (tidyr)

#replace NA values in points column with median of points column
df <- df %>% mutate(across(points, ~replace_na(., median(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 15 NA 2
4 D 9 NA 4
5 E 25 8 NA

وكانت القيمة المتوسطة في عمود النقاط 15، لذلك تم استبدال قيمة NA في عمود النقاط بـ 15.

ظلت جميع الأعمدة الأخرى دون تغيير.

مثال 2: استبدال قيم NA بالمتوسط في أعمدة متعددة

يوضح الكود التالي كيفية استبدال قيم NA في أعمدة النقطة والكتلة بمتوسطات الأعمدة الخاصة بها:

 library (dplyr)
library (tidyr)

#replace NA values in points and blocks columns with their respective medians
df <- df %>% mutate(across(c(points, blocks), ~replace_na(., median(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1.0
2 B 13 4 1.0
3 C 15 NA 2.0
4 D 9 NA 4.0
5 E 25 8 1.5

لاحظ أنه تم استبدال قيم NA في أعمدة النقطة والكتلة بمتوسطات الأعمدة الخاصة بها.

مثال 3: استبدال قيم NA بالمتوسط في جميع الأعمدة الرقمية

يوضح الكود التالي كيفية استبدال قيم NA في كل عمود رقمي بالقيمة المتوسطة الخاصة بها:

 library (dplyr)
library (tidyr)

#replace NA values in all numeric columns with their respective medians
df <- df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1.0
2 B 13 4 1.0
3 C 15 4 2.0
4 D 9 4 4.0
5 E 25 8 1.5

لاحظ أنه تم استبدال قيم NA في جميع الأعمدة الرقمية بمتوسطات الأعمدة الخاصة بها.

العمود الوحيد الذي لم يكن رقميًا (اللاعب) ظل دون تغيير.

مصادر إضافية

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

كيفية تصفية الصفوف التي تحتوي على سلسلة معينة باستخدام dplyr
كيفية حذف الصفوف باستخدام dplyr
كيفية استخدام الدالة عبر () في dplyr

Add a Comment

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