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