Array in R is a list or vector with two or more dimensions. An array is like a stacked matrix, and a matrix is a two-dimensional array.
R Array
R arrays are objects which can store data in more than two dimensions. Uni-dimensional arrays are called Vectors. A two-dimensional array is called Matrix. More than two-dimensional objects are called Arrays, which consist of all elements of the same data type.
How to Create an Array in R
To create an array in R, use the array() function. The array() function takes a vector as an argument and uses the dim parameter to create an array.
Syntax
array(data, dim = (nrow, ncol, nmat), dimnames=names)
Parameters
nrow: It is a number of rows.
ncol: It is a number of columns.
nmat: It is a number of matrices of dimensions nrow * ncol.
dimnames: The default value is NULL.
Example
Let’s define two vectors.
rv <- c(11, 19, 18)
rv2 <- c(21, 6, 29, 46, 37, 38)
You can take two vectors above as an input to an array where the dimension is considered 3 * 3, and two matrices or dimensional data is created.
rv <- c(11, 19, 18)
rv2 <- c(21, 6, 29, 46, 37, 38)
# Take these vectors as input to the array.
result <- array(c(rv, rv2), dim = c(3, 3, 2))
print(result)
Output
, , 1
[,1] [,2] [,3]
[1,] 11 21 46
[2,] 19 6 37
[3,] 18 29 38
, , 2
[,1] [,2] [,3]
[1,] 11 21 46
[2,] 19 6 37
[3,] 18 29 38
In our example, the data is a vector, and the dimensions are (3, 3, 2), which means 3 rows, 3 columns, and 2 levels. The total number of elements in all the vectors combined should be equal to the number of elements in the matrices.
How to rename array in R
To rename an array, use the matrix.names property. The rows name changed to (“row1”, “row2”) and column names will be changed to (“column1”, “column2”) respectively.
array1 <- c(10, 20)
array2 <- c(30, 40)
r.names <- c("row1", "row2")
c.names <- c("col1", "col2")
m.names <- c("Arr1", "Arr2")
final <- array(c(array1, array2), dim = c(2, 2, 2), dimnames = list(r.names, c.names, m.names))
print(final)
Output
, , Arr1
col1 col2
row1 10 30
row2 20 40
, , Arr2
col1 col2
row1 10 30
row2 20 40
How to access Array elements in R
Array elements in R can be indexed using ‘[ ]’ wherein the array-like matrices consist of rows and columns, indexed by mat[row, column].
rv1 <- c(10, 20, 30, 40)
rv2 <- c(50, 60, 70, 80, 90)
r.names <- c("row1", "row2", "row2")
c.names <- c("col1", "col2", "col3")
m.names <- c("Arr1")
final <- array(c(rv1, rv2), dim = c(3, 3, 1), dimnames = list(r.names, c.names, m.names))
print(final)
Output
, , Arr1
col1 col2 col3
row1 10 40 70
row2 20 50 80
row2 30 60 90
You can see the matrices from 1 to 9 are generated with (3, 3) dimensions (row, column) form, and the names of rows and columns are changed. Let’s see how the elements in the array can be extracted with the following examples.
Let’s extract the number ’50’ from the above array.
rv1 <- c(10, 20, 30, 40)
rv2 <- c(50, 60, 70, 80, 90)
r.names <- c("row1", "row2", "row2")
c.names <- c("col1", "col2", "col3")
m.names <- c("Arr1")
final <- array(c(rv1, rv2), dim = c(3, 3, 1), dimnames = list(r.names, c.names, m.names))
print(final[2, 2, 1])
The 50 valued element is positioned on (2, 2) on the 1st level array. See the below output.
[1] 50
Access multiple values of the array in R
To access multiple values at once, you need to specify the range you want.
rv1 <- c(10, 20, 30, 40)
rv2 <- c(50, 60, 70, 80, 90)
r.names <- c("row1", "row2", "row2")
c.names <- c("col1", "col2", "col3")
m.names <- c("Arr1")
final <- array(c(rv1, rv2), dim = c(3, 3, 1), dimnames = list(r.names, c.names, m.names))
print(final[1:2, 1:2, 1])
Output
col1 col2
row1 10 40
row2 20 50
The above code gives the output as below where the value containing 2 rows, 2 columns, and 1 is the first array ‘Arr1‘ is extracted.
How to modify Array in R
As we know that an array is made up of matrices in multiple dimensions, the operations on items of the array are carried out by accessing items of the matrices.
To modify an array, reassign the item at the specific position, and it will change to a new array.
rv1 <- c(10, 20, 30, 40)
rv2 <- c(50, 60, 70, 80, 90)
arr1 <- array(c(rv1, rv2), dim = c(3, 3, 1))
print(arr1)
cat("After modifying the array", "\n")
arr1[2, 2, 1] <- 500
print(arr1)
Output
, , 1
[,1] [,2] [,3]
[1,] 10 40 70
[2,] 20 50 80
[3,] 30 60 90
After modifying the array
, , 1
[,1] [,2] [,3]
[1,] 10 40 70
[2,] 20 500 80
[3,] 30 60 90
Conclusion
Congratulations, you have made it to the end of this tutorial!
You’ve learned about R’s Array along with its creation, indexing in an array with examples. That is it for R Array.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language.