Arrays are the R data objects which store the data in more than two dimensions. Arrays are n-dimensional data structures. For example, if we create an array of dimensions (2, 3, 3) then it creates 3 rectangular matrices each with 2 rows and 3 columns. They are homogeneous data structures.

Now, let’s see how to create arrays in R. To create an array in R you need to use the function called array(). The arguments to this array() are the set of elements in vectors and you have to pass a vector containing the dimensions of the array.

Array_NAME <- array(data, dim = (row_Size, column_Size, matrices, dimnames)

**where,**

data– An input vector given to the array.

matrices– Consists of multi-dimensional matrices.

row_Size– Number of row elements that an array can store.

column_Size– Number of column elements that an array can store.

dimnames– Used to change the default names of rows and columns according to the user’s preference.

**Example: **

`# Create the vectors with different length ` `vector1 <` `-` `c(` `1` `, ` `2` `, ` `3` `) ` `vector2 <` `-` `c(` `10` `, ` `15` `, ` `3` `, ` `11` `, ` `16` `, ` `12` `) ` ` ` `# taking this vector as input ` `result <` `-` `array(c(vector1, vector2), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `)) ` `print` `(result) ` |

*chevron_right*

*filter_none*

**Output:**

, , 1 [,1] [,2] [,3] [1,] 1 10 11 [2,] 2 15 16 [3,] 3 3 12 , , 2 [,1] [,2] [,3] [1,] 1 10 11 [2,] 2 15 16 [3,] 3 3 12

### Operations on Arrays

#### Naming columns and rows

We can give names to the rows and columns using dimnames.

**Example:**

`# Creating Vectors ` `vector1 <` `-` `c(` `1` `, ` `2` `, ` `3` `) ` `vector2 <` `-` `c(` `10` `, ` `15` `, ` `3` `, ` `11` `, ` `16` `, ` `12` `) ` ` ` `# Giving Names to rows and columns ` `column.names <` `-` `c(` `"COLUMN1"` `, ` `"COLUMN2"` `, ` `"COLUMN3"` `) ` `row.names <` `-` `c(` `"ROW1"` `, ` `"ROW2"` `, ` `"ROW3"` `) ` `matrix.names <` `-` `c(` `"Matrix.NO1"` `, ` `"Matrix.NO2"` `) ` ` ` `# taking this vector as input ` `result <` `-` `array(c(vector1, vector2), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `), ` ` ` `dimnames ` `=` `list` `(row.names, column.names, matrix.names)) ` `print` `(result) ` |

*chevron_right*

*filter_none*

**Output:**

, , Matrix.NO1 COLUMN1 COLUMN2 COLUMN3 ROW1 1 10 11 ROW2 2 15 16 ROW3 3 3 12 , , Matrix.NO2 COLUMN1 COLUMN2 COLUMN3 ROW1 1 10 11 ROW2 2 15 16 ROW3 3 3 12

#### Manipulating array elements

An array is made up of multiple dimensions and the operations are carried out by accessing elements.

**Example:**

`# creating two vectors of different length ` `# and taking vector as input ` `vector1 <` `-` `c(` `1` `, ` `2` `, ` `3` `) ` `vector2 <` `-` `c(` `4` `, ` `6` `, ` `8` `, ` `0` `, ` `2` `, ` `4` `) ` `array1 <` `-` `array(c(vector1, vector2), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `)) ` ` ` `# creating other array ` `vector3 <` `-` `c(` `3` `, ` `2` `, ` `1` `) ` `vector4 <` `-` `c(` `2` `, ` `4` `, ` `6` `, ` `8` `, ` `3` `, ` `5` `) ` `array2 <` `-` `array(c(vector3, vector4), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `)) ` ` ` `# create matrices and add them ` `matrix1 <` `-` `array1[,,` `2` `] ` `matrix2 <` `-` `array2[,,` `2` `] ` `result <` `-` `matrix1 ` `+` `matrix2 ` `print` `(result) ` |

*chevron_right*

*filter_none*

**Output:**

[,1] [,2] [,3] [1,] 4 6 8 [2,] 4 10 5 [3,] 4 14 9

#### Accessing Array elements

Using index position in matrix any element can be accessed easily. Also, we can alter/change the element in an array using index position.

**Syntax:**

Array_Name[row_position, Column_Position, Matrix_Level]

**Example:**

`# Creating Vectors ` `vector1 <` `-` `c(` `1` `, ` `2` `, ` `3` `) ` `vector2 <` `-` `c(` `10` `, ` `15` `, ` `3` `, ` `11` `, ` `16` `, ` `12` `) ` `column.names <` `-` `c(` `"COLUMN1"` `, ` `"COLUMN2"` `, ` `"COLUMN3"` `) ` `row.names <` `-` `c(` `"ROW1"` `, ` `"ROW2"` `, ` `"ROW3"` `) ` `matrix.names <` `-` `c(` `"Matrix.NO1"` `, ` `"Matrix.NO2"` `) ` ` ` `# taking vector as input ` `result <` `-` `array(c(vector1, vector2), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `), ` ` ` `dimnames ` `=` `list` `(row.names, column.names, matrix.names)) ` `print` `(result) ` ` ` `# print third row of second matrix ` `print` `(result[` `3` `,,` `2` `]) ` |

*chevron_right*

*filter_none*

**Output:**

, , Matrix.NO1 COLUMN1 COLUMN2 COLUMN3 ROW1 1 10 11 ROW2 2 15 16 ROW3 3 3 12 , , Matrix.NO2 COLUMN1 COLUMN2 COLUMN3 ROW1 1 10 11 ROW2 2 15 16 ROW3 3 3 12 COLUMN1 COLUMN2 COLUMN3 3 3 12

#### Calculation across array element

apply() function is used for calculations across array elements.

**Syntax:**

apply(x, margin, fun)

where,

**x** – an array.

**margin** – name of the dataset used.

**fun** – function to be applied to the elements of the array.

**Example:**

`# create two vectors and take them as input in array ` `vector1 <` `-` `c(` `3` `, ` `2` `, ` `1` `) ` `vector2 <` `-` `c(` `2` `, ` `4` `, ` `6` `, ` `8` `, ` `0` `, ` `1` `) ` `new.array <` `-` `array(c(vector1, vector2), dim ` `=` `c(` `3` `, ` `3` `, ` `2` `)) ` `print` `(new.array) ` ` ` `# using apply and calculate the sum of rows in matrices ` `result <` `-` `apply` `(new.array, c(` `1` `), ` `sum` `) ` `print` `(result) ` |

*chevron_right*

*filter_none*

**Output:**

, , 1 [,1] [,2] [,3] [1,] 3 2 8 [2,] 2 4 0 [3,] 1 6 1 , , 2 [,1] [,2] [,3] [1,] 3 2 8 [2,] 2 4 0 [3,] 1 6 1 [1] 26 12 16

## Recommended Posts:

- Perform Operations over Margins of an Array or Matrix in R Programming - apply() Function
- Performing different Operations on Two Arrays in R Programming - outer() Function
- Performing Operations on Multiple Lists simultaneously in R Programming - mapply() Function
- Operations on Lists in R Programming
- Get Indices of Specified Values of an Array in R Programming - arrayInd() Function
- Calculate the Sum of Matrix or Array columns in R Programming - colSums() Function
- Calculate the Mean of each Column of a Matrix or Array in R Programming - colMeans() Function
- Compute the Sum of Rows of a Matrix or Array in R Programming - rowSums Function
- Apply a Function over a Ragged Array in R Programming - tapply() Function
- Array vs Matrix in R Programming
- Perl | Hash Operations
- Perl | Directories with CRUD operations
- Kotlin - Collection Operations Overview
- Kotlin Aggregate operations
- Kotlin Collection Write operations
- ML | Linear Algebra Operations
- Bitwise Operations on Digits of a Number
- Operations on Matrices in R
- Operations on Vectors in R
- DataFrame Operations in R

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.