Come riparare in r: indice fuori limite
Un errore comune che potresti riscontrare in R è:
Error in x[, 4]: subscript out of bounds
Questo errore si verifica quando si tenta di accedere a una colonna o riga di una matrice che non esiste.
Questo tutorial mostra i passaggi esatti che puoi eseguire per risolvere questo errore, utilizzando la seguente matrice come esempio:
#make this example reproducible set. seeds (0) #create matrix with 10 rows and 3 columns x = matrix(data = sample. int (100, 30), nrow = 10, ncol = 3) #print matrix print (x) [,1] [,2] [,3] [1,] 14 51 96 [2,] 68 85 44 [3,] 39 21 33 [4,] 1 54 35 [5,] 34 74 70 [6,] 87 7 86 [7,] 43 73 42 [8,] 100 79 38 [9,] 82 37 20 [10,] 59 92 28
Esempio n. 1: indice fuori intervallo (con linee)
Il seguente codice tenta di accedere all’undicesima riga della matrice, che non esiste:
#attempt to display 11th row of matrix
x[11, ]
Error in x[11, ]: subscript out of bounds
Poiché l’undicesima riga della matrice non esiste, otteniamo l’errore dell’indice fuori dai limiti .
Se non sappiamo quante righe ci sono nella matrice, possiamo usare la funzione nrow() per scoprirlo:
#display number of rows in matrix
nrow(x)
[1] 10
Possiamo vedere che ci sono solo 10 righe nella matrice. Pertanto, possiamo utilizzare solo numeri inferiori o uguali a 10 per accedere alle righe.
Ad esempio, possiamo utilizzare la seguente sintassi per visualizzare la decima riga della matrice:
#display 10th row of matrix
x[10, ]
[1] 59 92 28
Esempio n.2: indice fuori intervallo (con colonne)
Il seguente codice tenta di accedere alla quarta colonna della matrice, che non esiste:
#attempt to display 4th column of matrix
x[, 4]
Error in x[, 4]: subscript out of bounds
Poiché la quarta colonna della matrice non esiste, otteniamo l’errore dell’indice fuori dai limiti .
Se non sappiamo quante colonne contiene la matrice, possiamo usare la funzione ncol() per scoprirlo:
#display number of columns in matrix
ncol(x)
[1] 3
Vediamo che ci sono solo 3 colonne nella matrice. Pertanto, possiamo utilizzare solo numeri inferiori o uguali a 3 per accedere alle colonne.
Ad esempio, possiamo utilizzare la seguente sintassi per visualizzare la terza colonna della matrice:
#display 3rd column of matrix
x[, 3]
[1] 96 44 33 35 70 86 42 38 20 28
Esempio n.3: indice fuori intervallo (righe e colonne)
Il seguente codice tenta di accedere al valore dell’undicesima riga e della quarta colonna della matrice, che non esiste:
#attempt to display value in 11th row and 4th column
x[11, 4]
Error in x[11, 4]: subscript out of bounds
Poiché non esistono né l’undicesima riga né la quarta colonna della matrice, otteniamo l’errore dell’indice fuori dai limiti .
Se non sappiamo quante righe e colonne ci sono nella matrice, possiamo usare la funzione dim() per scoprirlo:
#display number of rows and columns in matrix
dim(x)
[1] 10 3
Vediamo che nella matrice ci sono solo 10 righe e 3 colonne. Pertanto, possiamo utilizzare solo numeri inferiori o uguali a questi valori quando accediamo a righe e colonne.
Ad esempio, possiamo utilizzare la seguente sintassi per visualizzare il valore nella decima riga e nella terza colonna della matrice:
#display value in 10th row and 3rd column of matrix
x[10, 3]
[1] 28
Risorse addizionali
I seguenti tutorial spiegano come risolvere altri errori comuni in R:
Come risolvere il problema in R: i nomi non corrispondono ai nomi precedenti
Come risolvere in R: la lunghezza di un oggetto più lungo non è un multiplo della lunghezza di un oggetto più corto
Come risolvere in R: i contrasti possono essere applicati solo a fattori con 2 o più livelli