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