كيفية الإصلاح في r: الوسيطة "لا" مفقودة، بدون افتراضي
الخطأ الذي قد تواجهه في R هو:
Error in ifelse(df$team == "B", "Boston"): argument "no" is missing, with no default
يحدث هذا الخطأ عند استخدام الدالة ifelse() في R ولكنك تنسى تضمين وسيطة ثالثة لتحديد القيمة التي يجب إرجاعها إذا أعاد اختبار المنطق خطأ.
يشرح هذا البرنامج التعليمي بالضبط كيفية إصلاح هذا الخطأ.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'), points=c(12, 22, 35, 34, 20, 28, 30, 18), assists=c(4, 10, 11, 12, 12, 8, 6, 10)) #view data frame df team points assists 1 B 12 4 2 B 22 10 3 B 35 11 4 B 34 12 5 C 20 12 6 C 28 8 7 C 30 6 8 D 18 10
لنفترض الآن أننا نحاول استخدام الدالة ifelse() لإنشاء عمود جديد يسمى المدينة الذي يحتوي على “بوسطن” إذا كانت القيمة الموجودة في عمود الفريق تساوي “B”:
#attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')
Error in ifelse(df$team == "B", "Boston"):
argument "no" is missing, with no default
نتلقى خطأ لأننا فشلنا في توفير وسيطة ثالثة للدالة ifelse() التي تحدد القيمة التي يجب أن نعيدها إذا كانت القيمة في عمود الفريق لا تساوي “B”.
كيفية إصلاح الخطأ
طريقة إصلاح هذا الخطأ هي ببساطة توفير وسيطة ثالثة للدالة ifelse() التي تحدد القيمة التي يجب أن نعيدها إذا كانت القيمة في عمود الفريق لا تساوي “B”.
يوضح بناء الجملة التالي كيفية القيام بذلك:
#create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')
#view updated data frame
df
team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other
لاحظ أننا لا نتلقى أية أخطاء هذه المرة نظرًا لأننا قدمنا وسيطًا ثالثًا للدالة ifelse() .
في هذا المثال، تقوم الدالة ifelse() بإرجاع القيمة “Boston” إذا كانت القيمة الموجودة في عمود الفريق تساوي “B” أو القيمة “Other” إذا كانت القيمة الموجودة في عمود الفريق شيء آخر.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: NAs التي تم تقديمها عن طريق الإكراه
كيفية الإصلاح في R: الفهرس خارج الحدود
كيفية الإصلاح في R: طول الكائن الأطول ليس مضاعفًا لطول الكائن الأقصر
كيفية الإصلاح في R: عدد العناصر المراد استبدالها ليس مضاعفًا لطول الاستبدال