R list from variables using variable names
r
Solution
A couple of ways I can think of include `mget` (make assumptions about the environment your objects are located in):
mget( c("a","b","c") )
$a
[1] 2
$b
[1] "foo"
$c
[1] 1 2 3 4
Or as an edit to your function, you could use, `match.call` like this:
named.list <- function(...) {
l <- list(...)
names(l) <- as.character( match.call()[-1] )
l
}
named.list( a,b,c)
$a
[1] 2
$b
[1] "foo"
$c
[1] 1 2 3 4
Or you can do it in one go using `setNames` like this:
named.list <- function(...) {
l <- setNames( list(...) , as.character( match.call()[-1]) )
l
}
named.list( a,b,c)
$a
[1] 2
$b
[1] "foo"
$c
[1] 1 2 3 4
Problem
I've looked extensively for a solution for this very simple task and though I have a solution, it seems like there must be a better way. The task is to create a list from a set of variables, using the variable names as names for each element in the list, e.g.: ``` a <- 2 b <- 'foo' c <- 1:4 ``` My current solution: ``` named.list <- function(...) { l <- list(...) names(l) <- sapply(substitute(list(...)), deparse)[-1] l } named.list(a,b,c) ``` Produces: ``` $a [1] 2 $b [1] "foo" $c [1] 1 2 3 4 ```