So reparieren sie in r: index außerhalb der grenzen
Ein häufiger Fehler, der in R auftreten kann, ist:
Error in x[, 4]: subscript out of bounds
Dieser Fehler tritt auf, wenn Sie versuchen, auf eine Spalte oder Zeile einer Matrix zuzugreifen, die nicht vorhanden ist.
Dieses Tutorial zeigt die genauen Schritte, die Sie zur Behebung dieses Fehlers unternehmen können, am Beispiel der folgenden Matrix:
#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
Beispiel Nr. 1: Index außerhalb des gültigen Bereichs (mit Linien)
Der folgende Code versucht, auf die 11. Zeile der Matrix zuzugreifen, die nicht existiert:
#attempt to display 11th row of matrix
x[11, ]
Error in x[11, ]: subscript out of bounds
Da die 11. Zeile der Matrix nicht existiert, erhalten wir den Fehler „Index außerhalb der Grenzen“ .
Wenn wir nicht wissen, wie viele Zeilen die Matrix enthält, können wir die Funktion nrow() verwenden, um Folgendes herauszufinden:
#display number of rows in matrix
nrow(x)
[1] 10
Wir können sehen, dass die Matrix nur 10 Zeilen enthält. Daher können wir für den Zugriff auf Zeilen nur Zahlen kleiner oder gleich 10 verwenden.
Beispielsweise können wir die folgende Syntax verwenden, um die 10. Zeile der Matrix anzuzeigen:
#display 10th row of matrix
x[10, ]
[1] 59 92 28
Beispiel Nr. 2: Index außerhalb des gültigen Bereichs (mit Spalten)
Der folgende Code versucht, auf die 4. Spalte der Matrix zuzugreifen, die nicht existiert:
#attempt to display 4th column of matrix
x[, 4]
Error in x[, 4]: subscript out of bounds
Da die 4. Spalte der Matrix nicht existiert, erhalten wir den Fehler „Index außerhalb der Grenzen“ .
Wenn wir nicht wissen, wie viele Spalten die Matrix enthält, können wir die Funktion ncol() verwenden, um Folgendes herauszufinden:
#display number of columns in matrix
ncol(x)
[1] 3
Wir sehen, dass die Matrix nur 3 Spalten enthält. Daher können wir für den Zugriff auf die Spalten nur Zahlen kleiner oder gleich 3 verwenden.
Beispielsweise können wir die folgende Syntax verwenden, um die 3. Spalte der Matrix anzuzeigen:
#display 3rd column of matrix
x[, 3]
[1] 96 44 33 35 70 86 42 38 20 28
Beispiel Nr. 3: Index außerhalb des gültigen Bereichs (Zeilen und Spalten)
Der folgende Code versucht, auf den Wert der 11. Zeile und 4. Spalte der Matrix zuzugreifen, die nicht existiert:
#attempt to display value in 11th row and 4th column
x[11, 4]
Error in x[11, 4]: subscript out of bounds
Da weder die 11. Zeile noch die 4. Spalte der Matrix vorhanden sind, erhalten wir den Fehler „Index außerhalb der Grenzen“ .
Wenn wir nicht wissen, wie viele Zeilen und Spalten die Matrix enthält, können wir die Funktion dim() verwenden, um Folgendes herauszufinden:
#display number of rows and columns in matrix
dim(x)
[1] 10 3
Wir sehen, dass die Matrix nur 10 Zeilen und 3 Spalten enthält. Daher können wir beim Zugriff auf Zeilen und Spalten nur Zahlen verwenden, die kleiner oder gleich diesen Werten sind.
Beispielsweise können wir die folgende Syntax verwenden, um den Wert in der 10. Zeile und der 3. Spalte der Matrix anzuzeigen:
#display value in 10th row and 3rd column of matrix
x[10, 3]
[1] 28
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden