Jak naprawić w r: indeks poza zakresem
Typowym błędem, jaki możesz napotkać w R jest:
Error in x[, 4]: subscript out of bounds
Ten błąd występuje, gdy próbujesz uzyskać dostęp do kolumny lub wiersza macierzy, która nie istnieje.
W tym samouczku przedstawiono dokładne kroki, które można wykonać, aby rozwiązać ten błąd, korzystając z poniższej macierzy jako przykładu:
#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
Przykład nr 1: indeks poza zakresem (z liniami)
Poniższy kod próbuje uzyskać dostęp do 11. wiersza macierzy, który nie istnieje:
#attempt to display 11th row of matrix
x[11, ]
Error in x[11, ]: subscript out of bounds
Ponieważ 11. wiersz macierzy nie istnieje, otrzymujemy błąd indeksu poza zakresem .
Jeśli nie wiemy, ile wierszy znajduje się w macierzy, możemy skorzystać z funkcji nrow() , aby się dowiedzieć:
#display number of rows in matrix
nrow(x)
[1] 10
Widzimy, że w macierzy jest tylko 10 wierszy. Zatem w celu uzyskania dostępu do wierszy możemy używać tylko liczb mniejszych lub równych 10.
Na przykład możemy użyć następującej składni, aby wyświetlić 10. wiersz macierzy:
#display 10th row of matrix
x[10, ]
[1] 59 92 28
Przykład nr 2: indeks poza zakresem (z kolumnami)
Poniższy kod próbuje uzyskać dostęp do czwartej kolumny macierzy, która nie istnieje:
#attempt to display 4th column of matrix
x[, 4]
Error in x[, 4]: subscript out of bounds
Ponieważ czwarta kolumna macierzy nie istnieje, otrzymujemy błąd indeksu poza zakresem .
Jeśli nie wiemy, ile kolumn zawiera macierz, możemy użyć funkcji ncol() , aby dowiedzieć się:
#display number of columns in matrix
ncol(x)
[1] 3
Widzimy, że w macierzy są tylko 3 kolumny. Dlatego w celu uzyskania dostępu do kolumn możemy używać tylko liczb mniejszych lub równych 3.
Na przykład możemy użyć następującej składni, aby wyświetlić trzecią kolumnę macierzy:
#display 3rd column of matrix
x[, 3]
[1] 96 44 33 35 70 86 42 38 20 28
Przykład nr 3: indeks poza zakresem (wiersze i kolumny)
Poniższy kod próbuje uzyskać dostęp do wartości 11. wiersza i 4. kolumny macierzy, która nie istnieje:
#attempt to display value in 11th row and 4th column
x[11, 4]
Error in x[11, 4]: subscript out of bounds
Ponieważ nie istnieje ani 11. wiersz, ani 4. kolumna macierzy, otrzymujemy błąd indeksu poza zakresem .
Jeśli nie wiemy, ile wierszy i kolumn znajduje się w macierzy, możemy użyć funkcji dim() , aby się dowiedzieć:
#display number of rows and columns in matrix
dim(x)
[1] 10 3
Widzimy, że w macierzy jest tylko 10 wierszy i 3 kolumny. Dlatego podczas uzyskiwania dostępu do wierszy i kolumn możemy używać tylko liczb mniejszych lub równych tym wartościom.
Na przykład możemy zastosować następującą składnię, aby wyświetlić wartość w 10. wierszu i 3. kolumnie macierzy:
#display value in 10th row and 3rd column of matrix
x[10, 3]
[1] 28
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:
Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach