R에서 복구하는 방법: 범위를 벗어난 인덱스


R에서 발생할 수 있는 일반적인 오류는 다음과 같습니다.

 Error in x[, 4]: subscript out of bounds

이 오류는 존재하지 않는 행렬의 열이나 행에 액세스하려고 할 때 발생합니다.

이 튜토리얼에서는 다음 매트릭스를 예로 사용하여 이 오류를 해결하기 위해 취할 수 있는 정확한 단계를 보여줍니다.

 #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

예시 #1: 범위를 벗어난 인덱스(선 포함)

다음 코드는 존재하지 않는 행렬의 11번째 행에 액세스하려고 시도합니다.

 #attempt to display 11th row of matrix
x[11, ]

Error in x[11, ]: subscript out of bounds

행렬의 11번째 행이 존재하지 않으므로 인덱스가 범위를 벗어남 오류가 발생합니다.

행렬에 몇 개의 행이 있는지 모른다면 nrow() 함수를 사용하여 알아낼 수 있습니다.

 #display number of rows in matrix
nrow(x)

[1] 10

행렬에 행이 10개만 있는 것을 볼 수 있습니다. 따라서 행에 액세스하려면 10보다 작거나 같은 숫자만 사용할 수 있습니다.

예를 들어, 다음 구문을 사용하여 행렬의 10번째 행을 표시할 수 있습니다.

 #display 10th row of matrix
x[10, ]

[1] 59 92 28

예제 #2: 범위를 벗어난 인덱스(열 포함)

다음 코드는 존재하지 않는 행렬의 네 번째 열에 액세스하려고 시도합니다.

 #attempt to display 4th column of matrix
x[, 4]

Error in x[, 4]: subscript out of bounds

행렬의 네 번째 열이 존재하지 않으므로 인덱스가 범위를 벗어남 오류가 발생합니다.

행렬에 포함된 열 수를 모르는 경우 ncol() 함수를 사용하여 알아낼 수 있습니다.

 #display number of columns in matrix
ncol(x)

[1] 3

행렬에는 열이 3개만 있는 것을 볼 수 있습니다. 따라서 열에 액세스하려면 3보다 작거나 같은 숫자만 사용할 수 있습니다.

예를 들어, 다음 구문을 사용하여 행렬의 세 번째 열을 표시할 수 있습니다.

 #display 3rd column of matrix
x[, 3]

[1] 96 44 33 35 70 86 42 38 20 28

예제 #3: 범위를 벗어난 인덱스(행 및 열)

다음 코드는 존재하지 않는 행렬의 11번째 행과 4번째 열의 값에 액세스하려고 시도합니다.

 #attempt to display value in 11th row and 4th column
x[11, 4]

Error in x[11, 4]: subscript out of bounds

행렬의 11번째 행과 4번째 열이 모두 존재하지 않으므로 인덱스가 범위를 벗어남 오류가 발생합니다.

행렬에 몇 개의 행과 열이 있는지 모르는 경우에는 희미() 함수를 사용하여 알아낼 수 있습니다.

 #display number of rows and columns in matrix
dim(x)

[1] 10 3

행렬에는 행이 10개, 열이 3개만 있는 것을 볼 수 있습니다. 따라서 행과 열에 접근할 때 이 값보다 작거나 같은 숫자만 사용할 수 있습니다.

예를 들어, 다음 구문을 사용하여 행렬의 10번째 행과 3번째 열의 값을 표시할 수 있습니다.

 #display value in 10th row and 3rd column of matrix
x[10, 3]

[1] 28

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 해결하는 방법을 설명합니다.

R에서 수정하는 방법: 이름이 이전 이름과 일치하지 않습니다.
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수정하는 방법: 대비는 수준이 2개 이상인 요인에만 적용할 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다