R Array

An Array is a data structure which can store data of the same type in more than two dimensions.

The only difference between vectors, matrices, and arrays are

  • Vectors are uni-dimensional arrays
  • Matrices are two-dimensional arrays
  • Arrays can have more than two dimensions

Before we learn about arrays, make sure you know about R matrix and R vector.


Create an Array in R

In R, we use the array() function to create an array.

The syntax of the array() function is

array(vector, dim = c(nrow, ncol, nmat))

Here,

  • vector - the data items of same type
  • nrow - number of rows
  • ncol - number of columns
  • nmat - the number of matrices of nrow * ncol dimension

Let's see an example,

# create two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

print(array1)

Output

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

In the above example, we have used the array() function to create an array named array1. Notice the arguments passed inside array(),

array(c(1:15), dim = c(2,3,2))

Here,

  • c(1:12) - a vector with values from 1 to 12
  • dim = c(2,3,2) - create two matrices of 2 by 3 dimension

Finally, the numbers from 1 to 12 that are arranged in two 2 by 3 matrices are printed.


Access Array Elements

We use the vector index operator [ ] to access specific elements of an array in R.

The syntax to access an array element is

array[n1, n2, mat_level]

Here,

  • n1 - specifies the row position
  • n2 - specifies the column position
  • mat_level - specifies the matrix level

Let's see an example,

# create two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

print(array1)

# access element at 1st row, 3rd column of 2nd matrix
cat("\nDesired Element:", array1[1, 3, 2])

Output

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12


Desired Element: 11

In the above example, we have created an array named array1 with two 2 by 3 matrices. Notice the use of index operator [],

array1[1, 3, 2]

Here, [1, 3, 2] specifies we are trying to access element present at the 1st row, 3rd column of the 2nd matrix i.e. 11.

Access Entire Row or Column

In R, we can also access the entire row or column based on the value passed inside [].

  • [c(n), ,mat_level] - returns the entire element of the nth row.
  • [ ,c(n), mat_level] - returns the entire element of the nth column.

For example,

# create a two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

print(array1)


# access entire elements at 2nd column of 1st matrix
cat("\n2nd Column Elements of 1st matrix:", array1[,c(2),1])

# access entire elements at 1st row of 2nd matrix
cat("\n1st Row Elements of 2nd Matrix:", array1[c(1), ,2])

Output

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12


2nd Column Elements of 1st matrix: 3 4
1st Row Elements of 2nd Matrix: 7 9 11

Here,

  • array1[,c(2),1] - access 2nd column elements of 1st matrix
  • array1[c(1), ,2] - access 1st row of 2nd matrix

Check if Element Exists

In R, we use the %in% operator to check if the specified element is present in the matrix or not and returns a boolean value.

  • TRUE - if specified element is present in the matrix
  • FALSE - if specified element is not present in the matrix

For example,

# create a two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

11 %in% array1 # TRUE

13 %in% array1 # FALSE

Output

[1] TRUE
[2] FALSE

Here,

  • 11 is present in array1, so the method returns TRUE
  • 13 is not present in array1, so the method returns FALSE

Length of Array in R

In R, we can use the length() function to find the number of elements present inside the array. For example,

# create a two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

# find total elements in array1 using length()
cat("Total Elements:", length(array1))

Output

Total Elements: 12

Here, we have used length() to find the length of array1. Since there are two 2 by 3 matrices the length() function returns 12.

Did you find this article helpful?