6.6 C
London
Tuesday, March 11, 2025
HomeRFix Common Errors in RHow to Fix in R: Subscript out of bounds

How to Fix in R: Subscript out of bounds

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

One common error you may encounter in R is:

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

This error occurs when you attempt to access a column or row in a matrix that does not exist.

This tutorial shares the exact steps you can use to troubleshoot this error, using the following matrix as an example:

#make this example reproducible
set.seed(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

Example #1: Subscript out of bounds (with rows)

The following code attempts to access the 11th row of the matrix, which does not exist:

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

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

Since the 11th row of the matrix does not exist, we get the subscript out of bounds error.

If we’re unaware of how many rows are in the matrix, we can use the nrow() function to find out:

#display number of rows in matrix
nrow(x)

[1] 10

We can see that there are only 10 rows in the matrix. Thus, we can only use numbers less than or equal to 10 when accessing the rows.

For example, we can use the following syntax to display the 10th row of the matrix:

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

[1] 59 92 28

Example #2: Subscript out of bounds (with columns)

The following code attempts to access the 4th column of the matrix, which does not exist:

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

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

Since the 4th column of the matrix does not exist, we get the subscript out of bounds error.

If we’re unaware of how many columns are in the matrix, we can use the ncol() function to find out:

#display number of columns in matrix
ncol(x)

[1] 3

We can see that there are only 3 columns in the matrix. Thus, we can only use numbers less than or equal to 3 when accessing the columns.

For example, we can use the following syntax to display the 3rd column of the matrix:

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

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

Example #3: Subscript out of bounds (rows & columns)

The following code attempts to access the value in the 11th row and the 4th column of the matrix, which does not exist:

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

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

Since neither the 11th row nor the 4th column of the matrix exist, we get the subscript out of bounds error.

If we’re unaware of how many rows and columns are in the matrix, we can use the dim() function to find out:

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

[1] 10  3

We can see that there are only 10 rows and 3 columns in the matrix. Thus, we can only use numbers less than or equal to these values when accessing the rows and columns.

For example, we can use the following syntax to display the value in the 10th row and the 3rd column of the matrix:

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

[1] 28

Additional Resources

The following tutorials explain how to troubleshoot other common errors in R:

How to Fix in R: names do not match previous names
How to Fix in R: longer object length is not a multiple of shorter object length
How to Fix in R: contrasts can be applied only to factors with 2 or more levels

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories