كيفية الإصلاح في r: عدد غير صحيح من المؤشرات على المصفوفة
الخطأ الذي قد تواجهه في R هو:
Error in x[i, ] <- 0: incorrect number of subscripts on matrix
يحدث هذا الخطأ عندما تحاول تعيين قيمة لموضع في متجه، ولكن عن طريق الخطأ تقوم بتضمين فاصلة كما لو كنت تقوم بتعيين قيمة لموضع صف وعمود في مصفوفة.
يشرح هذا البرنامج التعليمي بالضبط كيفية إصلاح هذا الخطأ.
مثال 1: إصلاح خطأ لقيمة واحدة
لنفترض أن لدينا المتجه التالي في R مع 5 قيم:
#definevector
x <- c(4, 6, 7, 7, 15)
لنفترض الآن أننا نحاول إسناد القيمة “22” للعنصر الثالث في المتجه:
#attempt to assign the value '22' to element in third position
x[3, ] <- 22
Error in x[3, ] <- 22: incorrect number of subscripts on matrix
نتلقى خطأً لأننا قمنا بتضمين فاصلة عند محاولة تعيين القيمة الجديدة.
بدلاً من ذلك، نحتاج فقط إلى إزالة الأمر:
assign the value '22' to element in third position x[3] <- 22 #display updated vector x [1] 4 6 22 7 15
مثال 2: تصحيح خطأ في حلقة for
يمكن أن يحدث هذا الخطأ أيضًا عند محاولة استبدال قيم متعددة في متجه باستخدام حلقة “for”.
على سبيل المثال، تحاول التعليمة البرمجية التالية استبدال كل قيمة في المتجه بصفر:
#definevector
x <- c(4, 6, 7, 7, 15)
#attempt to replace every value in vector with zero
for (i in 1:length(x)) {
x[i, ]=0
}
Error in x[i, ] = 0: incorrect number of subscripts on matrix
نحن نتلقى خطأ لأننا قمنا بتضمين فاصلة عند محاولة تعيين الأصفار.
بدلاً من ذلك، نحتاج فقط إلى إزالة الأمر:
#definevector
x <- c(4, 6, 7, 7, 15)
#replace every value in vector with zero
for (i in 1:length(x)) {
x[i]=0
}
#view updated vector
x
[1] 0 0 0 0 0
بمجرد إزالة الفاصلة، يتم تشغيل التعليمات البرمجية دون أخطاء.
مصادر إضافية
كيفية الإصلاح في R: NAs التي تم تقديمها عن طريق الإكراه
كيفية الإصلاح في R: الفهرس خارج الحدود
كيفية إصلاح الخطأ في R: عدد غير صحيح من الأبعاد