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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *