كيفية تحويل أعمدة متعددة إلى عامل باستخدام 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