Как исправить в R: неправильное количество индексов в матрице


Одна ошибка, с которой вы можете столкнуться в R:

Error in x[i, ] <- 0 : incorrect number of subscripts on matrix

Эта ошибка возникает, когда вы пытаетесь присвоить какое-либо значение позиции в векторе, но случайно включаете запятую, как если бы вы присваивали какое-то значение позиции строки и столбца в матрице.

В этом руководстве рассказывается, как именно исправить эту ошибку.

Пример 1. Исправление ошибки для одного значения

Предположим, у нас есть следующий вектор в R с 5 значениями:

#define vector
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.

Например, следующий код пытается заменить каждое значение в векторе нулем:

#define vector
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

Мы получаем ошибку, потому что мы поставили запятую при попытке присвоить нули.

Вместо этого нам просто нужно удалить запятую:

#define vector
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: NA, представленные Coercion
Как исправить в R: нижний индекс выходит за пределы
Как исправить ошибку в R: неправильное количество измерений