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 rowsncol
- number of columnsnmat
- the number of matrices ofnrow * 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 12dim = 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 positionn2
- specifies the column positionmat_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 matrixarray1[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 matrixFALSE
- 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.