Come risolvere in r: numero errato di indici sulla matrice
Un errore che potresti riscontrare in R è:
Error in x[i, ] <- 0: incorrect number of subscripts on matrix
Questo errore si verifica quando si tenta di assegnare un valore a una posizione in un vettore, ma si include accidentalmente una virgola come se si stesse assegnando un valore a una posizione di riga e colonna in una matrice.
Questo tutorial spiega esattamente come correggere questo errore.
Esempio 1: correzione di un errore per un singolo valore
Supponiamo di avere il seguente vettore in R con 5 valori:
#definevector
x <- c(4, 6, 7, 7, 15)
Supponiamo ora di provare ad assegnare il valore “22” al terzo elemento del vettore:
#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
Riceviamo un errore perché abbiamo incluso una virgola durante il tentativo di assegnare il nuovo valore.
Dobbiamo invece solo rimuovere il comando:
assign the value '22' to element in third position x[3] <- 22 #display updated vector x [1] 4 6 22 7 15
Esempio 2: correggere un errore in un ciclo for
Questo errore può verificarsi anche quando si tenta di sostituire più valori in un vettore utilizzando un ciclo “for”.
Ad esempio, il codice seguente tenta di sostituire ogni valore in un vettore con uno 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
Riceviamo un errore perché abbiamo incluso una virgola durante il tentativo di assegnare degli zeri.
Dobbiamo invece solo rimuovere il 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
Una volta rimossa la virgola, il codice viene eseguito senza errori.
Risorse addizionali
Come risolvere in R: NA introdotte dalla coercizione
Come riparare in R: indice fuori limite
Come correggere l’errore in R: numero errato di dimensioni