R Matrix is a **Vector** with attributes of a dimension and optionally, dimension names attached to the Vector. The list is a data structure having elements of different data types.

**Convert R Matrix to List**

To convert Matrix to List in R, use the **split() **function. The split() is an inbuilt R function that divides the data in the vector into the groups defined by f. The replacement forms replace values corresponding to such a division. The unsplit() function reverses the effect of the split.

**Syntax**

`split(x, f, drop = FALSE, …)`

**Parameters**

**x:** It is a Vector or data frame containing values to be divided into groups.

**f: **A ‘**factor**’ in the sense that as.factor(f) defines the grouping or a list of such factors, their interaction is used for the grouping.

**drop: **logical indicating if levels that do not occur should be dropped (if f is a factor or a list).

**Example**

```
mat <- matrix(1:12, nrow = 4)
mat
cat("After converting from matrix to list", "\n")
list <- split(mat, rep(1:ncol(mat), each = nrow(mat)))
list
```

**Output**

```
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
After converting from matrix to list
$`1`
[1] 1 2 3 4
$`2`
[1] 5 6 7 8
$`3`
[1] 9 10 11 12
```

In this example, we have converted 4 X 3 matrix into the list. We have converted a matrix into a list using the **split() **function. The split() function takes a matrix, rep() function, and each arguments. The rep() is an iteration function in R. The term iteration means repetition.

You can also use the following approach to convert the matrix to a list.

```
mat <- matrix(1:5)
mat
typeof(mat)
list <- list(x = mat)
list
typeof(list)
```

**Output**

```
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[1] "integer"
$x
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[1] "list"
```

You can also check the class of the matrix and list using the class() function.

```
mat <- matrix(1:5)
class(mat)
list <- list(x = mat)
class(list)
```

**Output**

```
[1] "matrix" "array"
[1] "list"
```

**Converting matrix columns to a list of vectors**

If we need to use columns of a matrix as a vector, then we can convert them into the list of vectors.

To convert matrix columns to a list of vectors, we first need to convert a matrix to a data frame, then we can read it as the list.

**Code snippet**

`as.list(as.data.frame(matrix_name))`

See the following code.

```
mat <- matrix(1:9, nrow = 3)
mat
class(mat)
lst <- as.list(as.data.frame(mat))
lst
class(lst)
```

**Output**

```
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[1] "matrix" "array"
$V1
[1] 1 2 3
$V2
[1] 4 5 6
$V3
[1] 7 8 9
[1] "list"
```

That is it for converting a matrix to list in R programming.

**See also**

Krunal Lathiya is an Information Technology Engineer by education and web developer by profession. He has worked with many back-end platforms, including Node.js, PHP, and Python. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has written many programming blogs, which showcases his vast expertise in this field.