Como corrigir em r: número incorreto de índices na matriz
Um erro que você pode encontrar no R é:
Error in x[i, ] <- 0: incorrect number of subscripts on matrix
Este erro ocorre quando você tenta atribuir um valor a uma posição em um vetor, mas acidentalmente inclui uma vírgula como se estivesse atribuindo um valor a uma posição de linha e coluna em uma matriz.
Este tutorial explica exatamente como corrigir esse erro.
Exemplo 1: Corrigindo um erro para um único valor
Suponha que temos o seguinte vetor em R com 5 valores:
#definevector
x <- c(4, 6, 7, 7, 15)
Agora suponha que tentamos atribuir o valor “22” ao terceiro elemento do vetor:
#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
Estamos recebendo um erro porque incluímos uma vírgula ao tentar atribuir o novo valor.
Em vez disso, só precisamos remover o comando:
assign the value '22' to element in third position x[3] <- 22 #display updated vector x [1] 4 6 22 7 15
Exemplo 2: corrija um erro em um loop for
Este erro também pode ocorrer ao tentar substituir vários valores em um vetor usando um loop ‘for’.
Por exemplo, o código a seguir tenta substituir cada valor em um vetor por zero:
#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
Estamos recebendo um erro porque incluímos uma vírgula ao tentar atribuir zeros.
Em vez disso, só precisamos remover o comando:
#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
Depois que a vírgula for removida, o código será executado sem erros.
Recursos adicionais
Como corrigir em R: NAs introduzidos por coerção
Como reparar em R: índice fora dos limites
Como corrigir erro em R: número incorreto de dimensões