كيفية الإصلاح في r: خطأ فيsort.int(x, na.last,تنازلي,…): يجب أن يكون 'x' ذريًا


رسالة الخطأ التي قد تواجهها عند استخدام R هي:

 Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 
  'x' must be atomic

يحدث هذا الخطأ عند محاولة فرز قائمة.

افتراضيًا، R قادر فقط على فرز الكائنات الذرية مثل المتجهات. لذلك، لاستخدام الترتيب () مع القائمة، يجب عليك أولاً استخدام الدالة unlist () .

يوضح المثال التالي كيفية حل هذا الخطأ عمليًا.

كيفية إعادة إنتاج الخطأ

لنفترض أن لدينا القائمة التالية في R:

 #create list
some_list <- list(c(4, 3, 7), 2, c(5, 12, 19)) 

#view list
some_list

[[1]]
[1] 4 3 7

[[2]]
[1] 2

[[3]]
[1] 5 12 19

#view class
class(some_list)

[1] "list"

لنفترض الآن أننا نحاول فرز القيم في القائمة:

 #attempt to sort the values in the list
sort(some_list)

Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...): 
  'x' must be atomic

لقد تلقينا خطأ لأن R غير قادر على فرز القوائم مباشرة.

كيفية تجنب الخطأ

لتجنب الخطأ، يجب عليك أولاً استخدام الدالة unlist() كما يلي:

 #sort values in list
sort(unlist(some_list))

[1] 2 3 4 5 7 12 19

لاحظ أننا قادرون على فرز قائمة القيم بنجاح دون أي أخطاء لأننا استخدمنا unlist() لأول مرة، والذي حول القائمة إلى متجه رقمي.

افتراضيًا، يقوم R بفرز القيم بترتيب تصاعدي.

ومع ذلك، يمكننا استخدام التناقص = TRUE لفرز القيم بترتيب تنازلي:

 #sort values in list in descending order
sort(unlist(some_list), decreasing= TRUE )

[1] 19 12 7 5 4 3 2

لاحظ أنه يتم الآن فرز القيم بترتيب تنازلي.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:

كيفية الإصلاح في R: تتضمن الوسائط عددًا مختلفًا من الأسطر
كيفية الإصلاح في R: خطأ في اختيار الوسائط غير المستخدمة
كيفية الإصلاح في R: الوسائط غير الصالحة
كيفية الإصلاح في R: الاستبدال له طول صفر

Add a Comment

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