我已经为这个非常简单的任务广泛寻找解决方案,虽然我有一个解决方案,但似乎必须有更好的方法。任务是从一组变量创建一个列表,使用变量名称作为列表中每个元素的名称,例如:
a <- 2
b <- 'foo'
c <- 1:4
我目前的解决方案:
named.list <- function(...) {
l <- list(...)
names(l) <- sapply(substitute(list(...)), deparse)[-1]
l
}
named.list(a,b,c)
产生:
$a
[1] 2
$b
[1] "foo"
$c
[1] 1 2 3 4