To create a list in R, use the list() method. But in some scenarios, we have to convert a list into a vector, and to do that, we can use the unlist() function. The
unlist() function in R
The unlist() function is used to convert a list to vector in R. The unlist() function takes the list as an argument and returns the Vector. It flattens the list.
Syntax
unlist(list, recursive = TRUE, use.names = TRUE)
Parameters
list: It is an R object, typically a list or vector.
recursive: It is a logical value that should unlist be applied to list components of x?
use.names: It is logical. Should names be preserved?
Return Value
The unlist() method returns a vector.
The output type is determined from the highest type of the components in the hierarchy NULL < raw < logical < integer < double < complex < character < list < expression, after coercion of pairlists to lists.
Example
The unlist() function converts a list of vectors into a single vector. Let’s define a list of vectors and pass that list to the unlist() function. To create a list in R, use the list() function.
data <- list(c(11, 18, 19, 21, 46))
class(data)
rv <- unlist(data)
rv
class(rv)
Output
[1] "list"
[1] 11 18 19 21 46
[1] "numeric"
As you can see, the unlist() function returns the vector, and in our case, it is a numeric vector.
Unlist the List of Data Frames
We can create a list that contains vector and data frame.
First, let’s define a list with two vectors.
data <- list(c(11, 18, 19, 21),
c(4, 10, 20, 46))
mix <- data
mix
Here, the data list only contains vectors. Nothing else.
Now, we will append a new list item, which will be a data frame. To create a data frame, use the data.frame() function.
To append an element to the list, use the double box brackets ( [[ ]] ).
mix[[3]] <- data.frame(x1 = c(5, 1, 2),
x2 = c(7, 5, 7))
Let’s see the mix list in the output.
data <- list(c(11, 18, 19, 21),
c(4, 10, 20, 46))
mix <- data
mix
cat("-------------------------", "\n")
cat("Modified list is: ", "\n")
cat("-------------------------", "\n")
mix[[3]] <- data.frame(x1 = c(5, 1, 2),
x2 = c(7, 5, 7))
mix
Output
[[1]]
[1] 11 18 19 21
[[2]]
[1] 4 10 20 46
-------------------------
Modified list is:
-------------------------
[[1]]
[1] 11 18 19 21
[[2]]
[1] 4 10 20 46
[[3]]
x1 x2
1 5 7
2 1 5
Now, use the unlist() function to unpack the list and print the elements one by one.
data <- list(c(11, 18, 19, 21),
c(4, 10, 20, 46))
mix <- data
mix
cat("-------------------------", "\n")
cat("Modified list is: ", "\n")
cat("-------------------------", "\n")
mix[[3]] <- data.frame(x1 = c(5, 1, 2),
x2 = c(7, 5, 7))
mix
cat("-------------------------", "\n")
cat("Unpacked list is: ", "\n")
cat("-------------------------", "\n")
unlist(mix)
Output
[[1]]
[1] 11 18 19 21
[[2]]
[1] 4 10 20 46
-------------------------
Modified list is:
-------------------------
[[1]]
[1] 11 18 19 21
[[2]]
[1] 4 10 20 46
[[3]]
x1 x2
1 5 7
2 1 5
3 2 7
-------------------------
Unpacked list is:
-------------------------
x11 x12 x13 x21 x22 x23
11 18 19 21 4 10 20 46 5 1 2 7 5 7
As you can see in the output that each column of the data matrix is unlisted itself.
Convert data frame to vector
To convert a data frame to vector in R, use the unlist() function.
rl <- unlist(BOD)
rl
Output
Time1 Time2 Time3 Time4 Time5 Time6 demand1 demand2 demand3 demand4
1.0 2.0 3.0 4.0 5.0 7.0 8.3 10.3 19.0 16.0
demand5 demand6
15.6 19.8
If you want just values and not column names, then you can pass the use.names = FALSE.
rl <- unlist(BOD, use.names = FALSE)
rl
Output
[1] 1.0 2.0 3.0 4.0 5.0 7.0 8.3 10.3 19.0 16.0 15.6 19.8
As you can see, we removed the names and print only the column values, and to do that, and we used use.names = FALSE as an argument to unlist() function.
Unlist a list of character vectors in R
To unlist a character vector in R, use the unlist() function.
rs <- list(c("A", "B", "X", "Y"))
ul <- unlist(rs)
ul
Output
[1] "A" "B" "X" "Y"
That is it for the unlist() function in the R tutorial.

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.