كيفية تحويل أعمدة متعددة إلى عامل باستخدام dplyr


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

الطريقة الأولى: تحويل أعمدة محددة إلى عامل

 library (dplyr) 

df %>% mutate_at(c(' col1 ', ' col2 '), as. factor )

الطريقة الثانية: تحويل كافة أعمدة الأحرف إلى عامل

 library (dplyr)

df %>% mutate_if(is. character , as. factor )

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

مثال 1: تحويل أعمدة محددة إلى عامل

لنفترض أن لدينا إطار البيانات التالي في R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

يمكننا أن نرى أن أعمدة الفريق والمنصب والبداية عبارة عن أحرف بينما عمود النقاط رقمي.

لتحويل أعمدة الفريق والموضع فقط إلى عوامل، يمكننا استخدام الصيغة التالية:

 library (dplyr) 

#convert team and position columns to factor
df <- df %>% mutate_at(c(' team ', ' position '), as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

يمكننا أن نرى أن أعمدة الفريق والمنصب أصبحت الآن عاملين.

مثال 2: تحويل كافة أعمدة الأحرف إلى عامل

لنفترض أن لدينا إطار البيانات التالي في R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

يمكننا أن نرى أن ثلاثة من الأعمدة الموجودة في إطار البيانات هي أعمدة أحرف.

لتحويل كافة أعمدة الأحرف إلى عوامل، يمكننا استخدام بناء الجملة التالي:

 library (dplyr) 

#convert all character columns to factor
df <- df %>% mutate_if(is. character , as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: Factor w/ 2 levels "N","Y": 2 2 2 1 1 2 1 1
 $ points: num 12 24 25 35 30 14 19 11

يمكننا أن نرى أن جميع أعمدة الأحرف أصبحت الآن عوامل.

ملاحظة : ارجع إلى صفحة وثائق dplyr للحصول على شرح كامل لوظيفتي mutate_at و mute_if .

مصادر إضافية

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

كيفية تحويل أعمدة متعددة إلى رقمية باستخدام dplyr
كيفية تحويل عامل إلى رقمي في R
كيفية تحويل التاريخ إلى رقمي في R

Add a Comment

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