Convert Named List to Vector with Values Only

Convert Named List to Vector with Values Only

I have a list of named values:

myList <- list('A' = 1, 'B' = 2, 'C' = 3)

I want a vector with the value 1:3

I can't figure out how to extract the values without defining a function. Is there a simpler way that I'm unaware of?

library(plyr)
myvector <- laply(myList, function(x) x)

Is there something akin to myList$Values to strip the names and return it as a vector?

3 Answers

Use unlist with use.names = FALSE argument.

unlist(myList, use.names=FALSE)
1

purrr::flatten_*() is also a good option. the flatten_* functions add thin sanity checks and ensure type safety.

myList <- list('A'=1, 'B'=2, 'C'=3)

purrr::flatten_dbl(myList)
## [1] 1 2 3
1

This can be done by using unlist before as.vector. The result is the same as using the parameter use.names=FALSE.

as.vector(unlist(myList))
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Robert Thorne
Author

Robert Thorne

Robert Thorne covers electric vehicle innovations, autonomous driving systems, global mobility trends, and automotive engineering developments.