Ответ 1
Несколько способов, о которых я могу думать, включают mget
(сделайте предположения об окружающей среде, в которой находятся ваши объекты):
mget( c("a","b","c") )
$a
[1] 2
$b
[1] "foo"
$c
[1] 1 2 3 4
Или как отредактировать вашу функцию, вы можете использовать match.call
следующим образом:
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
Или вы можете сделать это за один раз, используя setNames
следующим образом:
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