كيفية تضمين na في بيان ifelse في r


غالبًا ما قد ترغب في استخدام عبارة ifelse في R لإنشاء عمود جديد في إطار بيانات تعتمد قيمه على قيم عمود موجود.

للقيام بذلك، يمكنك استخدام بناء الجملة الأساسي التالي:

 df$new_column<- ifelse(df$col1 == ' A ', ' val_if_true ', ' val_if_false ')

ومع ذلك، إذا كانت قيم NA موجودة في عمود، فإن القيم الموجودة في العمود الجديد ستكون NA تلقائيًا.

لتجنب ذلك، يمكنك استخدام الدالة !is.na() كما يلي:

 df$new_column<- ifelse(df$col1 == ' A ' & !is. na (df$col1) , ' val_if_true ', ' val_if_false ')

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: تضمين NA في عبارة ifelse في R

لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F'),
                 conf=c('West', NA, 'West', 'East', 'East', 'East'),
                 points=c(30, 35, 11, 18, 14, NA))

#view data frame
df

  player conf points
1 A West 30
2 B <NA> 35
3 C West 11
4 D East 18
5 E East 14
6 F East NA

لنفترض الآن أننا نحاول إنشاء عمود جديد يسمى فئة يأخذ القيم التالية:

  • “West_Player” إذا كان Conf يساوي “West”
  • “أخرى” إذا كان conf لا يساوي “الغرب”

يوضح الكود التالي كيفية القيام بذلك:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ', ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 <NA>
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

لاحظ أن قيمة الفئة في الصف 2 تساوي NA لأن القيمة المقابلة في عمود conf تساوي NA.

لتجنب ذلك، يمكننا استخدام الدالة !is.na() كما يلي:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ' & !is. na (df$conf), ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 Other
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

لاحظ أن قيمة الفئة في السطر 2 تساوي الآن “أخرى” بدلاً من NA.

باستخدام الدالة !is.na() ، حددنا أن القيمة الموجودة في عمود conf يجب أن تكون مساوية لـ ‘West’ ولا تساوي NA لكي تكون القيمة في عمود الفئة الجديدة ‘West_Player’.

مصادر إضافية

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

كيفية كتابة عبارة If Else المتداخلة في R
كيفية كتابة بيان الحالة في R
كيفية إضافة أعمدة متعددة إلى إطار البيانات في R

Add a Comment

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