كيفية إعادة ترميز القيم باستخدام dplyr


في بعض الأحيان قد تكون مهتمًا بإعادة ترميز قيم معينة في إطار بيانات في R. ولحسن الحظ، يمكن القيام بذلك بسهولة باستخدام وظيفة recode() من الحزمة dplyr.

يوضح هذا البرنامج التعليمي عدة أمثلة للاستخدام العملي لهذه الوظيفة.

مثال 1: إعادة ترميز عمود واحد في إطار بيانات

يوضح الكود التالي كيفية إعادة ترميز عمود واحد في إطار البيانات:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' and 'Loss' to '1' and '0'
df %>% mutate (result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 to 24 1
2 B 29 0
3 C 13 1
4 D 15 0

مثال 2: إعادة ترميز عمود واحد في إطار بيانات وتوفير قيم NA

يوضح التعليمة البرمجية التالية كيفية إعادة ترميز عمود واحد في إطار بيانات وتعيين القيمة NA لأي قيمة لم يتم تعيين قيمة جديدة لها بشكل صريح:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' to '1' and give all other values a value of NA
df %>% mutate (result=recode(result, ' Win '='1', .default =NA_character_))

       player points result
1 to 24 1
2 B 29 <NA>
3 C 13 1
4 D 15 <NA>

مثال 3: إعادة ترميز أعمدة متعددة في إطار بيانات

يوضح التعليمة البرمجية التالية كيفية إعادة ترميز أعمدة متعددة مرة واحدة في إطار البيانات:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#recode 'player' and 'result' columns
df %>% mutate (player=recode(player, ' A '='Z'),
              result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 Z 24 1
2 B 29 0
3 C 13 1
4 D 15 0

يمكنك العثور على الوثائق الكاملة لوظيفة recode() هنا .

Add a Comment

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